如何将多个文件描述符合并到一个文件描述符中? 在我的C++应用程序中,我使用一些调用第三方库来创建一个新的子进程。我将2个文件**变量传递给它,它们由子进程的stdout和stderr处理程序的指针填充。但事实上,我不需要在单独的线程中分别读取它们,我只需要将它们合并到一个线程中,然后从那里读取。如何才能做到这一点(linux和Windows)?

如何将多个文件描述符合并到一个文件描述符中? 在我的C++应用程序中,我使用一些调用第三方库来创建一个新的子进程。我将2个文件**变量传递给它,它们由子进程的stdout和stderr处理程序的指针填充。但事实上,我不需要在单独的线程中分别读取它们,我只需要将它们合并到一个线程中,然后从那里读取。如何才能做到这一点(linux和Windows)?,c++,c,file,parent-child,C++,C,File,Parent Child,系统将文件描述符链接到物理文件。将两个文件描述符合并为一个将导致只得到一个文件 如果始终将这两个文件描述符放在一起,则只需创建一个结构,该结构将只在一个变量指针中处理这两个文件描述符。使用dup2() #包括 #包括 dup2(文件号(stdout),文件号(stderr)); 当然可以,但我想把它们合并起来。它将使我的生活更容易给予能力读取这些文件从单线程。这样的事情应该在shell中完成,比如当我们编写命令2>&1时,然后将两个日志合并到stdout中。所以我想知道2>&1是如何在那里实现的

系统将文件描述符链接到物理文件。将两个文件描述符合并为一个将导致只得到一个文件

如果始终将这两个文件描述符放在一起,则只需创建一个结构,该结构将只在一个变量指针中处理这两个文件描述符。

使用
dup2
()

#包括
#包括
dup2(文件号(stdout),文件号(stderr));

当然可以,但我想把它们合并起来。它将使我的生活更容易给予能力读取这些文件从单线程。这样的事情应该在shell中完成,比如当我们编写
命令2>&1
时,然后将两个日志合并到stdout中。所以我想知道2>&1是如何在那里实现的。
#include <stdio.h>
#include <unistd.h>

dup2(fileno(stdout), fileno(stderr));