gpt4 book ai didi

c++ - 从 std::fstream 检索文件描述符

转载 作者:IT老高 更新时间:2023-10-28 22:28:11 25 4
gpt4 key购买 nike

Possible Duplicate:
Getting a FILE* from a std::fstream

我在 Linux 上工作,文件描述符是这个操作系统的主要模型。

我想知道是否有任何库或任何方法可以从 C++ std::fstream 开始检索 native Linux 文件描述符。

我考虑过 boost::iostream,因为有一个名为 file_descriptor 的类,但我明白它的目的与我想要实现的目的不同。

你知道有什么方法吗?

最佳答案

您可以采用另一种方式:实现您自己的包含文件描述符的流缓冲区,然后将其与 iostream 一起使用,而不是 fstream。使用 Boost.Iostreams可以使任务更容易。

非可移植gcc解决方案是:

#include <ext/stdio_filebuf.h>

{
int fd = ...;
__gnu_cxx::stdio_filebuf<char> fd_file_buf{fd, std::ios_base::out | std::ios_base::binary};
std::ostream fd_stream{&fd_file_buf};
// Write into fd_stream.
// ...
// Flushes the stream and closes fd at scope exit.
}

关于c++ - 从 std::fstream 检索文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11558447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com