曲径通幽论坛

标题: lockf [打印本页]

作者: beyes    时间: 2009-4-24 02:23
标题: lockf
lockf() 也可以用来对文件区域设锁,这和 fcntl() 比较相似,但它也相对简单些,因为功能性和灵活性要差些。其函数原型为:
#include <unistd.h>

int lockf(int fileds, int function, off_t size_to_lock);
fileds 是文件描述符;
function 参数有以下几个值:
size_to_lock 参数从文件当前的偏移算起的字节数。

在使用 lockf() 时,必须先定位到你想要在文件中的锁定区域的起始位置( 可以用 lseek() 调用来做 ),然后就在参数中指定 size_to_lock 的值以指明欲锁定区域的大小。

其实,像 lockf() 和 fcntl() 这样的文件锁定方法,都仅仅是 ”建议性“ 的,所以这些锁也可叫建议锁,原因是这些 “锁定” 并不会真正的阻止文件爱你的读写操作。之所以设置这些锁,是希望别的程序在使用这些区域前进行测试检查,以达到合作完成任务的目的,而不致于会产生冲突。对于 fcntl() 和 lockf() 混用所产生的后果是未定义的,所以用哪一种锁定函数就要从一而终的使用这个函数。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2