0

在我的一个项目中,我必须缓存有关在大文件中找到的某些数据块的位置信息。我已经实现了一个围绕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 回答