#include #include #include "file_lock.h" static struct flock lock_it, unlock_it; void file_lock_init(void) { lock_it.l_whence = SEEK_SET; lock_it.l_start = 0; lock_it.l_len = 0; lock_it.l_type = F_WRLCK; lock_it.l_pid = 0; unlock_it.l_whence = SEEK_SET; unlock_it.l_start = 0; unlock_it.l_len = 0; unlock_it.l_type = F_UNLCK; unlock_it.l_pid = 0; } int file_trylock(int fd) { return fcntl(fd, F_SETLK, &lock_it); } int file_lock(int fd) { return fcntl(fd, F_SETLKW, &lock_it); } int file_unlock(int fd) { return fcntl(fd, F_SETLK, &unlock_it); }