2014年(41)
分类: LINUX
2014-05-04 20:51:40
记录锁通常用于进程中将文件锁住,保证文件操作的原子性,使用记录锁锁住文件,首先要定义一个struct flock变量,间这变量的值设置好,然后使用fcntl函数锁住文件,待操作完成在用fcntl函数解锁。
struct flock {
...
short l_type; /* Type of lock: F_RDLCK(设置共享读锁),
F_WRLCK(设置独占写锁), F_UNLCK(解锁) */
short l_whence; /* How to interpret l_start:(开始锁位置参考点)
SEEK_SET, SEEK_CUR, SEEK_END */
off_t l_start; /* Starting offset for lock (开始锁位置偏移量)*/
off_t l_len; /* Number of bytes to lock (锁文件的长度)*/
pid_t l_pid; /* PID of process blocking our lock
(F_GETLK only) */
...
};