我创建了一个管和我用DUP2()覆盖流1和2(标准输出&标准错误)到这些管道。

现在我希望使用fprintf中写入数据流1或2,但我的节目似乎没有被接收在管道的另一侧什么。我用printf()试过了,但我不知道这是否默认写入stdout或流1。如果写入流1,我什么地方更深猜它是一个问题,我的代码。

基本上我要求,给定表示所述流的int,怎样可以得到适合于在fprintf中使用一个FILE *()?

有帮助吗?

解决方案

如果你有一个文件描述符并希望FILE*,你可以使用fdopen

FILE *fdopen(int fd, const char *mode);

fdopen 是一个Posix的功能和man fdopen记录。做你可以使用 fileno

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top