麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
_______flock的疑问__
悬赏分:20 - 2007年08月13日

新PHP中文官方手册里对flock函数是这样描述的:

bool flock ( int handle, int operation [, int &wouldblock])

flock() 操作的 handle 必须是一个已经打开的文件指针。 operation 可以是以下值之一:



要取得共享锁定(可读),将 operation 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)。

要取得独占锁定(可写),将 operation 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)。

要释放锁定(无论共享或独占),将 operation 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)。

如果你不希望 flock() 在锁定时堵塞,则给 operation 增加 LOCK_NB(PHP 4.0.1 以前的版本中设置为 4)。

----------------------------------------------------------
而大部分PHP中文老教程里这样介绍:

本函数用来锁住文件,使别的行程无法存取。传入的参数 fp 为文件的指针。参数 operation 的值为下列的数字之一:
1 表示配置锁住文件可以允许别的行程读取;
2 表示只有该行程可以写入文件;
3 表示读写均锁住;
4 则不锁住区块 (block)。
而本函数无论在 UNIX 或是 Windows 系列中的锁住效果都相近。执行成功则返回 true 值,否则返回 false 值。

----------------------------------------------------------

以上两教程中 operation = 3 的介绍似乎完全相反。
很久前曾听人说老教程中 flock为3的介绍是错误的。不知道是不是?
如果是的话那就意味着flock(3)是释放锁定,而完全没有锁定了。

上面手册中对1、2的介绍也不是很清楚。不知道我这样理解是否正确:
1.锁定本文件,别的行程无能对本文件进行写操作,但是可以读取本文件。
2.锁定本文件,别的行程即不能写也不能读本文件。

提问者:刀锋战士   08-13 14:02
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
90 + 40 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM