2
popen() alternative从标准错误标准输出上区分开管
我的问题是有关一个张贴以上。在第一/响应接受,我们正在做的:
// Child. Let's redirect its standard output to our pipe and replace process with tail
close(pipefd[0]);
dup2(pipefd[1], STDOUT_FILENO);
dup2(pipefd[1], STDERR_FILENO);
但我要的是从正规OUTPUT
区分ERROR
。我怎样才能做到这一点?当我在STDERR中获得任何东西时,我需要对它做出反应。
它没有多大意义,但是,我可以做以下?:
int pipefd[3] /* instead of 2 */
dup2(pipefd[1], STDOUT_FILENO);
dup2(pipefd[2], STDERR_FILENO);
我使用select
看FD,看看输出是否可用。但到现在为止,我只需要看1fd,现在我必须看看2.
注意:管道只能有2个端点,对吗?一个写信给其他人阅读。我怎样才能容纳这第三端:D?
谢谢!有点有道理。感谢你的帮助。 – hari
工作得很好!当我现在考虑这个问题时,这个问题本身有点“跛脚”,但我想我很笨,所以它允许:D!非常感激。 – hari