0

ブーストのmapped_file iostreamsライブラリを使用して問題に遭遇しました。

ブーストのドキュメント:mapped_file

私が読むことができるすべてのドキュメントと例を読んだ後でも、次のコードを動作させることができません。new_file_size と maps_file_params クラスへのパスを渡すと、mapped_file_params オブジェクトをパラメーターに指定して、mapped_file のコンストラクターを呼び出すと、目的の場所にファイルが開かれる (そして作成される) と仮定します。しかし、それが行う唯一のことは、私が指示した場所ではなく、プロジェクトの作業ディレクトリに「%F8/134」のような奇妙な名前のファイルを作成することです。たぶん私は間違っているので、mapped_file に指定する前にファイルを作成する必要がありますか? ドキュメントを読んだ後、 new_file_size パラメータを入力すると新しいファイルが作成されると想定していました。ファイル名を指定します。

誰もこれを以前に経験しましたか?これを解決する方法についてアドバイスはありますか?

コードは次のとおりです。

boost::iostreams::mapped_file_params param(filename); // filename is a std::string with the correct path
param.flags = boost::iostreams::mapped_file::mapmode::readwrite;
param.new_file_size = sizeNeeded; // sizeNeeded is the size of the data
param.length = sizeNeeded;
boost::iostreams::mapped_file fileMap(param); // at this point the file is created
…

御時間ありがとうございます、

アレクサンドル

4

1 に答える 1