Как я могу заблокировать файл на определенный период времени (10 секунд), используя язык C в Ubuntu Linux?
Работает так:
#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(); ...
Используйте fcntl(2) для блокировки файла, затем используйте alarm(2) для вызова обработчика SIGALRM, который затем разблокирует его.
fcntl(2)
alarm(2)
SIGALRM