从 fstream 对象获取文件描述符

2013年6月12日 由 Creater 留言 »

您可以使用 fstream::rdbuf().fd() 方法来从 fstream 对象获取文件描述符。但是 Linux 上的 basic_filebuf 类就没有可用的 fd() 方法。这就是非标准的 C++ 代码。
对于标准的 C++ 代码来说,首先用 open (Posix) 打开文件,然后获取文件描述符 fd。然后用 fdopen(fd)(Posix)打开 FILE 对象,并将其命名为 myfile。接着用 mybuf(myfile)(一致的扩展)创建 filebuf 对象,并将其命名为 mybuf。之后,您就可以调用它的成员函数 str.rdbuf(mybuf)(标准 C++)将该缓冲与 ifstream 或 ofstream 对象 str 关联在一起。

广告位

发表评论

你必须 登陆 方可发表评论.