2010-01-13 8 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

1

사용 fcntl(2) 다음 잠금을 해제됩니다 SIGALRM 핸들러를 호출하는 alarm(2)을 사용하여 다음 파일을 잠급니다.

+1

시그널 핸들러에서'flock'을 호출하는 것이 안전합니까? –

+0

Hrm. 'signal (7)'은 no라고 말합니다. 'fcntl (2)'는 괜찮을 것이다. –