ofstream.open 打开的文件标识符转换为 FILE*

动态 未结 0 82
小小草
小小草 LV1 2023年9月23日 23:40 发表
可以使用 ofstream 的 rdbuf() 函数获取其关联的 streambuf 对象,然后使用 streambuf 的 filebuf() 函数获取其关联的 filebuf 对象,最后使用 filebuf 的 native_handle() 函数获取其对应的文件描述符(file descriptor),再使用 fdopen() 函数将文件描述符转换为 FILE* 指针。 示例代码如下: ``` #include #include using namespace std; int main() { ofstream myfile("example.txt"); if (myfile.is_open()) { streambuf* buf = myfile.rdbuf(); filebuf* fb = buf->filebuf(); int fd = fb->native_handle(); FILE* fp = fdopen(fd, "w"); if (fp != NULL) { fprintf(fp, "This is some text.\n"); fclose(fp); } else { cout << "Unable to convert file descriptor to FILE*.\n"; } myfile.close(); } else { cout << "Unable to open file.\n"; } return 0; } ```
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复