用C ++创建临时文件

时间:2014-09-25 20:30:01

标签: android c++ ios

我需要创建一个临时文件,用一些数据填充它并将结果发送到只接受std::istreams的函数。

我尝试使用tmpfile()并且它适用于我的第一个要求 - '创建一个文件并填充一些数据'但它返回FILE*并且没有办法将它(据我所知)转换为std::streams

是否有C ++方式创建临时文件? 如果无法做到这一点,tmpnam返回有效文件名的可靠性如何?有没有人在Android或iOS上测试过这个?

编辑:我不想将数据复制到std::stringstream,因为我的测试的一部分是从磁盘读取数据。

1 个答案:

答案 0 :(得分:2)

如果您想要替代std::tmpfilestd::tmpnam,可能需要查看Boost Filesystem库。它包含一个函数unique_path(),它可以为您提供放置目录,文件等的位置。

它还包括标准库没有的其他文件系统操作功能,例如迭代目录中的文件。我发现这些对单元测试特别有用。