2.lockf()
【函数介绍】
lockf()是fcntl()在文件加锁方面的一个简化调用,可以方便的进行添加、解除、检测文件锁。
调用形式:
int lockf(int fd,int cmd,off_t len);
cmd为要执行的操作:
------F_LOCK:给文件加互斥锁。如果文件已经被加锁,则进程被阻塞直到另一个进程将锁释放,申请到为止。子进程不会从父进程那里继承锁。可能导致锁的合并。
------F_TLOCK:功能与F_LOCK基本一致,只是当文件已经被加锁时,调用进程不会阻塞而是直接打印错误信息并返回。
------F_ULOCK:对指定的文件部分进行锁的移除。可能导致加锁不分拆分。
------F_TEST:检测是否加锁,返回0表示未加锁或者被当前进程加锁;返回-1表示被其他进程加锁。