#include <stdlib.h> #include <unistd.h> #include "nfs_flock.h" int lock_reg(int fd, int type, off_t offset, int whence, off_t len, int cmd) { struct flock lock; lock.l_type = type; lock.l_start = offset; lock.l_whence = whence; lock.l_len = len; return (fcntl(fd, cmd, &lock)); } int lock_test(int fd, int type, off_t offset, int whence, int len) { struct flock lock; lock.l_type = type; lock.l_start = offset; lock.l_whence = whence; lock.l_len = len; if (fcntl(fd, F_GETLK, &lock) < 0) { perror("F_GETLK"); exit(2); } if (lock.l_type == F_UNLCK) return (0); return (lock.l_pid); }