Блокировка и разблокировка файлов с помощью C API в Ubuntu LInux - PullRequest
2 голосов
/ 13 января 2010

Как я могу заблокировать файл на определенный период времени (10 секунд), используя язык C в Ubuntu Linux?

Ответы [ 2 ]

3 голосов
/ 13 января 2010

Работает так:

#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();
...
1 голос
/ 13 января 2010

Используйте fcntl(2) для блокировки файла, затем используйте alarm(2) для вызова обработчика SIGALRM, который затем разблокирует его.

...