2017-01-03 63 views
0

我使用带有fl.1_start和f1.1_len的某些值的fcntl来锁定文件中的特定字节。当程序正在运行时,我试图从这些字节上的其他程序写入该文件。当两个程序同时运行时,第二个程序正在写入锁定的字节,尽管第一个程序存在锁定。任何人都可以解释为什么它表现得如此吗?fcntl字节linux中的文件锁定

回答

3

fcntl是一种Unix系统中的自愿实现。两个进程都必须使用它才能正常工作。

read()write()这样的操作只是简单地忽略锁。另一个进程只有在明确调用fcntl()时才被阻塞,该区域已被其他进程锁定

+0

感谢您的回答 – Nazeem