在我的C ++应用程序中,我使用一些调用第三方库来创建一个新的子进程。我向它传递了2个FILE**
个变量,它们由子进程的stdout
和stderr
个处理程序指针填充。但实际上我不需要在单独的线程中单独读取它们,我只需要将它们合并到一个并从那里读取。我该怎么做(linux和Windows)?
答案 0 :(得分:1)
使用dup2
(manpage)。
#include <stdio.h>
#include <unistd.h>
dup2(fileno(stdout), fileno(stderr));
答案 1 :(得分:0)
文件描述符由系统链接到物理文件。将两个文件描述符合并为一个将导致只获得一个文件。
如果你总是将这两个文件描述符放在一起,你可以简单地创建一个只在一个变量指针中处理两个文件描述符的结构。