2010-01-13 102 views

回答

3

它的工作原理是這樣的:

#include <io.h> 
#include <sys/file.h> 
... 
int f = open ("filename", O_RDONLY); 
if (f < 0) 
     error(); 
if (flock (f, LOCK_EX)) 
     error(); 
sleep (10); 

if (flock (f, LOCK_UN)) 
     error(); 
... 
+5

請記住,這些不是強制性的鎖,它們是諮詢鎖 - 意味着使用該文件的每個人都需要它們。如果他們不這樣做,他們可以自由地操作文件。 – nos 2010-01-13 17:47:59

1

使用fcntl(2)鎖定文件,然後使用alarm(2)打電話給你SIGALRM處理程序,然後將其解鎖。

+1

在信號處理程序中調用'flock'安全嗎? – 2010-01-13 20:29:10

+0

Hrm。 '信號(7)'說不。 'fcntl(2)'應該沒問題。 – 2010-01-13 20:34:25