ofstream ポインターへの書き込みに問題があります。もう欠落しているものは何もないので、これは非常に困惑しています。注、これはこの質問のフォローアップです: C++ vector of ofstream, how to write to one specific element
私のコードは次のとおりです。
std::vector<shared_ptr<ofstream>> filelist;
void main()
{
for(int ii=0;ii<10;ii++)
{
string filename = "/dev/shm/table_"+int2string(ii)+".csv";
filelist.push_back(make_shared<ofstream>(filename.c_str()));
}
*filelist[5]<<"some string"<<endl;
filelist[5]->flush();
exit(1);
}
これは出力ファイルに何も書き込みませんが、10 個の空のファイルを作成します。ここで何が間違っている可能性があるか知っている人はいますか?
編集:さらにいくつかのテストを実行しました。すべてのコールバックが終了するまで、すべてのファイルに対して、完了するまで exit(1) なしでコードを実行します。一部のファイルは空ではありませんが、データが必要な他のファイルは空です。
十分なディスク容量があり、必要以上のファイル記述子があることはわかっています。一部のファイルが正しく書き込まれ、他のファイルが正しく書き込まれない理由についての説明はありますか?