0
我使用帶有fl.1_start和f1.1_len的某些值的fcntl來鎖定文件中的特定字節。當程序正在運行時,我試圖從這些字節上的其他程序寫入該文件。當兩個程序同時運行時,第二個程序正在寫入鎖定的字節,儘管第一個程序存在鎖定。任何人都可以解釋爲什麼它表現得如此嗎?fcntl字節linux中的文件鎖定
我使用帶有fl.1_start和f1.1_len的某些值的fcntl來鎖定文件中的特定字節。當程序正在運行時,我試圖從這些字節上的其他程序寫入該文件。當兩個程序同時運行時,第二個程序正在寫入鎖定的字節,儘管第一個程序存在鎖定。任何人都可以解釋爲什麼它表現得如此嗎?fcntl字節linux中的文件鎖定
fcntl
是一種Unix系統中的自願實現。兩個進程都必須使用它才能正常工作。
像read()
和write()
這樣的操作只是簡單地忽略鎖。另一個進程只有在明確調用fcntl()
時才被阻塞,該區域已被其他進程鎖定
感謝您的回答 – Nazeem