創建一個鎖定的文件我想使用boost::interprocess::file_lock
來確保在過程P2
之前沒有讀取由進程P1
寫入目錄x
的文件,直到完成爲止。爲此,我希望P1
在寫入文件時用boost::interprocess::file_lock
鎖定文件,然後在完成時解鎖它們。然後P2
可以跳過(並回到)任何被鎖定的文件。使用boost :: interprocess :: file_lock
我遇到的問題是,看起來boost::interprocess::file_lock
只允許您鎖定存在的文件。但是,如果我先創建該文件,然後將其鎖定,那麼就在那裏的競爭條件:
P1
創建文件P2
注意到該文件,並開始讀它P1
鎖定該文件P1
寫入一些數據P2
讀取一些數據,到最後,並且只輸出P1
的一部分輸出。
所以我想要做的是創建一個文件,並在創建文件時立即鎖定它。有沒有辦法使用boost::interprocess::file_lock
來做到這一點?