C++ 用の PHP の file_get_contents() 関数を模倣しようとしています。
ただし、char 配列を文字列に変換すると、nullbyte で停止します。
fread(charbuf, 1, file_size, fp);
string str(charbuf);
文字列を静的サイズの配列として初期化し、ファイルの内容をそのコンテナーに直接読み取るにはどうすればよいですか? また、その文字列を初期化するのに十分なメモリがない場合など、エラーを確認するにはどうすればよいですか。これにより、現在使用している一時的なメモリ割り当ても削除されますが、これを削除したいと考えています。
安全性はどうですか?多くのプロセスが同じファイルを同時に読み取ったり、読み取り中にそれらの1つが同時に書き込みを行ったりする可能性はありますか? そのようなことが起こらないようにするにはどうすればよいですか?
「文字列はバイナリコンテナではありません」以外の方法で答えていただければ幸いです。
事実について、この質問を再開するようにお願いします。 – Konrad Rudolph 10 年 10 月 25 日 6:25" at What is the best way to read a whole file into a std::string in C++? それとも、文字列の余分なコピーを持たずにファイルを読み取るように求める新しい質問を作成しますか?