我想同步对文件的访问。我正在使用 Linux 和 g++。
我想通过使用函数来锁定文件flock()
。我开发了 2 个测试应用程序,向/从同一个文件写入和读取。他们都flock()
用LOCK_SH
.
作家首先开始,写作,然后睡觉。第二个应用程序稍后启动。我期待阅读器应用程序在调用时会阻塞,flock()
因为编写器进程没有释放锁。
这是正确的期望还是它们仅在read()
同时write()
被调用时才阻塞,即在同一确切时间?我误解了什么?
PROG A PROG B
-open file
-flock -open file
-write -sleep 5
-sleep 1000 -flock ** expected to block ?? **
-close -read data