0

私のプロジェクトの 1 つで、大きなファイルにある特定のデータ チャンクに関する位置情報をキャッシュする必要があります。std::basic_istream<char>::pos_typeマップに配置するために構築された小さな API を既に実装しています。

ここで、これらの記述子をバイトストリームにシリアル化し、さらに使用するためにディスクに書き込む必要があります (他の *nix マシンでも同様です)。このタイプはプラットフォームに依存するが、それでも POD タイプであることを読みました。だから私の質問は:

  • オフセットだけでなく、何かを保存したほうがよいでしょうか? たとえばstd::fpos<std::mbstate_t>、読み取り構造の状態を維持しますか?
  • オフセット データstd::basic_istream<char>::pos_type(および必要に応じてその他の情報) を安全に取得して復元するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

の構造std::fpos<mbstate_t>は特定されておらず、 には重要な状態がある可能性がありますmbstate_t。これらのオブジェクトを移植可能にシリアル化することはできません。整数型であるオフセット型( )の値を取得でき、その値をシリアル化できます。std::streamoff

于 2016-12-21T08:34:04.740 に答える