根據下面的鏈接,我寫了一個小測試用例。但它不起作用。任何想法表示讚賞!scoped_lock在文件上不起作用?
#include <iostream>
#include <fstream>
#include <boost/interprocess/sync/file_lock.hpp>
#include <boost/interprocess/sync/scoped_lock.hpp>
using namespace std;
using namespace boost::interprocess;
int main()
{
ofstream file_out("fileLock.txt");
file_lock f_lock("fileLock.txt");
{
scoped_lock<file_lock> e_lock(f_lock); // it works if I comment this out
file_out << 10;
file_out.flush();
file_out.close();
}
return 0;
}
定義「不起作用」。你有編譯器錯誤嗎?運行時斷言?意外的行爲?提供一些細節。 – ildjarn 2011-03-25 02:33:38
它編譯,但在運行時,它不寫入fileLock.txt。 – echo 2011-03-25 03:26:55
我可以用VC++ 2010 SP1和boost 1.46.1重現這一點。您應該將其發佈到boost用戶郵件列表中,因爲它似乎是一個錯誤,因爲文檔中的確切示例代碼無法工作。 – ildjarn 2011-03-25 07:12:33