创建 fstream
对象的众所周知的方法是:
ifstream fobj("myfile.txt");
IE。使用文件名。
但我想使用文件描述符创建一个 ifstream 对象。
原因: 我想使用
_popen()
执行命令 。_popen()
将输出返回为FILE*
。所以有一个 FILE* 指针,但没有文件名。原文由 Tabrez Ahmed 发布,翻译遵循 CC BY-SA 4.0 许可协议
创建 fstream
对象的众所周知的方法是:
ifstream fobj("myfile.txt");
IE。使用文件名。
但我想使用文件描述符创建一个 ifstream 对象。
原因: 我想使用
_popen()
执行命令 。_popen()
将输出返回为FILE*
。所以有一个 FILE* 指针,但没有文件名。原文由 Tabrez Ahmed 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答474 阅读✓ 已解决
您不能仅在标准 C++ 中做到这一点,因为 iostream 和 CI/O 是完全独立且不相关的。但是,您可以编写 自己 的由 C 文件流支持的 iostream。我相信 GCC 带有一个这样的流类作为库扩展。
或者,如果您想要的只是一种包装 C 文件流的对象-y 方式,则可以为此目的 使用唯一指针。