2017-01-03 24 views
0

我使用帶有fl.1_start和f1.1_len的某些值的fcntl來鎖定文件中的特定字節。當程序正在運行時,我試圖從這些字節上的其他程序寫入該文件。當兩個程序同時運行時,第二個程序正在寫入鎖定的字節,儘管第一個程序存在鎖定。任何人都可以解釋爲什麼它表現得如此嗎?fcntl字節linux中的文件鎖定

回答

3

fcntl是一種Unix系統中的自願實現。兩個進程都必須使用它才能正常工作。

read()write()這樣的操作只是簡單地忽略鎖。另一個進程只有在明確調用fcntl()時才被阻塞,該區域已被其他進程鎖定

+0

感謝您的回答 – Nazeem