Solved

Linux File Locking on Network Files

Posted on 2014-11-13
4
209 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
  • 2
4 Comments
 
LVL 32

Accepted Solution

by:
sarabande earned 450 total points
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
Setting up an actual NFS was the solution.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Software development teams often use in-memory caches to improve performance. They want to speed up access to, or reduce load on, a backing store (database, file system, etc.) by keeping some or all of the data in memory.   You should implement a …
"Disruption" is the most feared word for C-level executives these days. They agonize over their industry being disturbed by another player - most likely by startups.
The goal of this video is to provide viewers with basic examples to understand and use pointers in the C programming language.
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.

772 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

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now