3

根据man页面,以下方法仅支持建议锁定flocklockffcntl。有没有办法通过单个进程强制锁定某个文件,例如使用写锁定,以便其他进程无法使用写权限打开该文件?

4

1 回答 1

6

不可以。Unix 系列中的操作系统通常不支持强制文件锁定1。这包括 Linux、BSD 和 OS X。

在某些 Unix 上,如果文件是当前正在运行的可执行映像,您将无法打开文件进行写入;open()将失败ETXTBSY。但是,您始终可以取消链接(删除)文件并创建一个新文件,没有什么可以阻止它。

脚注

1:这并不完全正确,但是强制文件锁需要一些工作,强制锁是特定于平台的,OS X 不支持它们。

于 2012-11-28T11:15:09.933 回答