Solved

Linux File Locking on Network Files

Posted on 2014-11-13
4
220 Views
Last Modified: 2014-11-19
I am try to implement a file locking system within my application which is running in Linux.

I use flock to lock the file as shared (LOCK_SH) when reading and as exclusive (LOCK_EX) when writing.  I'm also perform the lock as non-blocking (LOCK_NB).

I tested the file locking of a networked file by running 2 instances of my application on the same PC simultaneously, and I can see that one will wait to write while the other is in the process of writing.

When I run one instance on one PC and another instance on another PC, I am unable to see that the either PC recognizes the network file as locked.

What is the proper way to get networked PCs to recognize when a file is locked?

I am currently running Fedora 19 and my application is written in C.
0
Comment
Question by:sctccomm
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 34

Accepted Solution

by:
sarabande earned 450 total points
ID: 40442064
you may think of setting up an nfs file system. see

http://nfs.sourceforge.net/

for more information.

Sara
0
 
LVL 34

Assisted Solution

by:Duncan Roe
Duncan Roe earned 50 total points
ID: 40442179
When you mentioned networked file I assumed you were using NFS already. Is that not the case?
man nfs has quite a lot to say about file locking, especially between different clients
0
 

Assisted Solution

by:sctccomm
sctccomm earned 0 total points
ID: 40443921
I was able to get the file locking to work.

Originally I used:  mount -t cifs //192.168.1.100/project /mnt/project

but this is just normal Windows file sharing, not NFS.

After installing and configuring NFS on my Windows server, I mounted the drive using:

mount -t nfs 192.168.1.100:/project /mnt/project

Now everything is working as expected.
0
 

Author Closing Comment

by:sctccomm
ID: 40451911
Setting up an actual NFS was the solution.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Fluent Interface Design Pattern You can use the Fluent Interface (http://en.wikipedia.org/wiki/Fluent_interface) design pattern to make your PHP code easier to read and maintain.  "Fluent Interface" is an object-oriented design pattern that r…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
The goal of this video is to provide viewers with basic examples to understand how to use strings and some functions related to them in the C programming language.

695 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question