struct flock
时间: 2023-10-13 17:06:48 浏览: 116
linux系统struct flock 结构体
`struct flock`是一个结构体,用于描述一个文件锁定操作。
它的定义如下:
```
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) */
...
};
```
其中,`l_type`表示锁的类型,可以是以下三个值之一:
- `F_RDLCK`:共享锁,多个进程可以同时持有该锁;
- `F_WRLCK`:独占锁,同一时刻只能有一个进程持有该锁;
- `F_UNLCK`:解锁。
`l_whence`表示`l_start`的偏移量的起点,可以是以下三个值之一:
- `SEEK_SET`:从文件开头偏移;
- `SEEK_CUR`:从当前位置偏移;
- `SEEK_END`:从文件末尾偏移。
`l_start`表示锁定的起始位置,`l_len`表示锁定的长度。
`l_pid`表示持有该锁的进程的PID,仅在查询锁状态时才有意义。
阅读全文