_locking
用来锁定或解锁档案中的指定位元组数。
基本介绍
- 中文名:_locking
- 外文名:_locking
原型
函式原型:int _locking( int fd, int mode, long nbytes );
参数
- fd
- 档案说明符
- mode
- 锁定要执行的操作。
- nbytes
- 用于锁定的位元组数。
返回值
如果成功,_locking返回 0 。为-1的返回值指示一个错误,在errno设定为以下任一值情况下。
- EACCES
- 锁定冲突 (档案锁定或解除锁定)。
- EBADF
- 档案无效描述符。
- EDEADLOCK
- 锁定冲突。当_LK_LOCK或_LK_RLCK标誌指定时和档案不可能被锁定,然后尝试10次之后返回。
- EINVAL
- 无效参数指定_locking。
备注
_locking函式被锁定或解锁fd指定档案的nbytes位元组。锁在档案的位元组。其他进程可以防止对这些位元组的访问许可权。所有锁定或解锁的起始档案指针的当前位置nbytes位元组并为下运行。锁定档案尾位元组的过去是可能的。
清单常数模式必须为下列之一,在 Locking.h 定义。
- _LK_LOCK
- 锁定指定位元组。如果位元组无法锁定,函式在 1 秒后直接调用。如果10 多次尝试后位元组无法锁定后,常数返回 FALSE。
- _LK_NBLCK
- 锁定指定位元组。如果位元组无法锁定,常数将返回 false。
- _LK_NBRLCK
- 与_LK_NBLCK相同。
- _LK_RLCK
- 与_LK_LOCK相同。
- _LK_UNLCK
- 取消锁定指定位元组,以前必须锁定。
重叠档案的多区域可以锁定。绑定以前锁定解锁的区域。_locking不合併相邻区域;如果两种锁定的区域是连续的,必须单独取消锁定每个区域。只应简要锁区域应在关闭档案或程式退出之前被取消锁定。