首页 >后端开发 >C++ >如何从 POSIX 文件描述符创建 C fstream?

如何从 POSIX 文件描述符创建 C fstream?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-25 16:42:09972浏览

How Can I Create a C   fstream from a POSIX File Descriptor?

从 POSIX 文件描述符构造 C fstream

此查询提供了一个看似简单但事实证明很复杂的任务:构造 C fstream来自 POSIX 文件描述符。解决方案是否在于更简单的方法,或者是否有合适的库可用?

问题的复杂性

根据专家的说法,没有标准的 C 机制这个任务。但是,标准库的某些实现(例如 libstdc )提供非标准扩展。

非标准解决方案

以下非标准解决方案可用:

libstdc :

  • 利用 __gnu_cxx::stdio_filebuf 类模板从文件描述符创建文件流缓冲区。
  • 示例:
__gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, std::ios::in);
istream is(&amp;filebuf);

微软 Visual C :

  • 采用接受 FILE* 参数的非标准 ifstream 构造函数。
  • 示例:
ifstream ifs(::_fdopen(posix_handle, "r"));

结论

虽然没有标准的C对于此任务的方法,特定实现提供的非标准扩展提供了可行的解决方案。

以上是如何从 POSIX 文件描述符创建 C fstream?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn