在Mac OS X中强制文件锁定

时间:2012-11-28 11:10:53

标签: c macos file bash unix

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

1 个答案:

答案 0 :(得分:6)

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

在某些Unix上,如果它们是当前正在运行的可执行映像,则无法打开要写入的文件; open()将失败ETXTBSY。但是,您可以随时取消链接(删除)文件并创建一个新文件,但没有任何内容可以阻止该文件。

脚注

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