ofstreamを使用して出力を書き込むプログラムがあります。Visual Studioでコンパイルした場合、Windowsではすべてが完全に正常に機能しますが、GCCでコンパイルした場合、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は次のとおりです:(Gentoo 4.3.4 p1.0、pie-10.1.5)4.3.4
私はコードが機能する必要があることを知っているので、直接のコード修正よりも、何が間違っている可能性があるかという提案を探すようなものです。
編集:fwriteはまったく同じ方法で失敗するようです(何も書き込まれず、エラーは報告されません)。
編集:GCCとプログラムの両方を大学のディレクトリでSSH経由で実行しています(意味がある場合)。私はファイルを実行して書き込むのに十分な許可を持っています(ls。> out.txtは問題なく動作します)、問題があるのは私のプログラムだけです。
手伝ってくれてありがとう