我有一個程序,它使用ofstream寫它的輸出。使用Visual Studio編譯時,在Windows上一切正常,但在使用GCC編譯時,它只在Linux上寫入空文件。Ofstream在linux上寫空文件
ofstream out(path_out_cstr, ofstream::out);
if(out.bad()){
cout << "Could not write the file" << flush;
}
else{
cout << "writing";
out << "Content" << endl;
if(out.fail()) cout << "writing failed";
out.flush();
out.close();
}
正在寫入的目錄具有0777特權。
奇怪的是:什麼都沒有寫,但沒有錯誤報告。
gcc的--version是:(4.3.4 Gentoo的P1.0,餅10.1.5)4.3.4
我知道的代碼應該工作,所以我更喜歡找建議,可能是錯誤的,而不是直接的代碼修復。
編輯:fwrite似乎以完全相同的方式失敗(沒有寫入,沒有錯誤報告)。
編輯:我執行GCC和程序通過SSH在我的大學目錄,如果它可以有任何意義。我有足夠的許可來執行和寫入文件(ls。> out.txt工作正常),它只是我的程序有麻煩。
感謝您的幫助
在FC12下使用g ++ 4.4.3 – nico 2010-05-24 09:42:17
在Linux下你的程序的輸出是什麼(如在cout中)? – UncleZeiv 2010-05-24 09:46:01
您是否檢查了目錄中的可用空間(df -h dirname)?我還會在* strace *下運行該程序,並查看系統調用失敗。 – bobah 2010-05-24 09:47:02