1
我有是偶爾零星拋出下面的異常代碼的一些問題:升壓進程間競爭條件預防
boost interprocess: no such file or directory
有多個代碼訪問同一組文件,但一些代碼,將實時將文件移到不同的目錄。 處理和移動文件的代碼使用文件鎖定,例如,
boost::interprocess::file_lock
的方法,代碼發生的是以下內容: 1)程序1進行檢查以查看它要鎖定的文件存在 2)如果上述檢查通過,它然後使用file_lock
鎖定該文件我認爲,問題在於,在步驟1和2之間,程序2可以使用boost :: filesystem :: rename對程序1正在處理的文件進行移動。
如果兩個程序同時運行,有什麼辦法可以防止這種情況發生?