【发布时间】:2014-09-25 20:30:00
【问题描述】:
我需要创建一个临时文件,用一些数据填充它并将结果发送到只接受std::istreams 的函数。
我尝试使用tmpfile(),它适用于我的第一个要求 - '创建一个文件并用一些数据填充它',但它返回一个 FILE* 并且无法转换它(据我所知) 到std::streams。
是否有创建临时文件的 C++ 方法? 如果这不可能,tmpnam 返回有效文件名的可靠性如何?有人在 Android 或 iOS 上测试过吗?
编辑:我不想将数据复制到std::stringstream,因为我的测试的一部分是从磁盘读取数据。
【问题讨论】:
-
"将结果发送到只接受 std::istreams 的函数。" 不是文件,而是:你知道 istringstream 吗?
-
我不想复制数据。我的一部分测试是从磁盘读取...
-
您认为
tmpnam不会做您想做的事有什么特别的原因吗? -
@MatsPetersson 不。我更喜欢创建临时文件的唯一原因是避免在完成测试后添加删除它的代码