从 POSIX 文件描述符构造 C fstream
此查询提供了一个看似简单但事实证明很复杂的任务:构造 C fstream来自 POSIX 文件描述符。解决方案是否在于更简单的方法,或者是否有合适的库可用?
问题的复杂性
根据专家的说法,没有标准的 C 机制这个任务。但是,标准库的某些实现(例如 libstdc )提供非标准扩展。
非标准解决方案
以下非标准解决方案可用:
libstdc :
__gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, std::ios::in); istream is(&filebuf);
微软 Visual C :
ifstream ifs(::_fdopen(posix_handle, "r"));
结论
虽然没有标准的C对于此任务的方法,特定实现提供的非标准扩展提供了可行的解决方案。
以上是如何从 POSIX 文件描述符创建 C fstream?的详细内容。更多信息请关注PHP中文网其他相关文章!