文件锁fcntl的使用
fcntl函数主要用于锁文件。
函数原型:
第一个参数fd就是文件描述符。
第二个参数是锁的命令,有三种分别是
(F_GETLK获得锁, F_SETLK非阻塞方式设置锁, F_SETLKW阻塞方式设置锁)
如果以第三种阻塞方式设置锁,则参数要加上flock结构体地址
struct flock 结构体如下:
结构体第一个参数l_type就是锁的状态,是写锁,读锁,还是不锁。
第二个whence参数表示从哪里开始锁,一般是SEEK_SET位置。
第三个l_start从开始位置whence偏移多少字节开始锁。
第四个l_len锁多少个字节。
第五个看是谁锁的。
注意:如果l_start和l_len同时为0,表示文件全部锁上。
示例:
#include<stdio.h>