gpt4 book ai didi

c - 区分管道上的标准输出和标准错误

转载 作者:行者123 更新时间:2023-12-04 06:17:36 26 4
gpt4 key购买 nike

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);

但我要的是区分 ERROR来自常规 OUTPUT .我怎样才能做到这一点?当我在 STDERR 中得到任何东西时,我需要对它使用react。

这没有多大意义,但是,我可以执行以下操作吗?:
int pipefd[3]     /* instead of 2 */

dup2(pipefd[1], STDOUT_FILENO);
dup2(pipefd[2], STDERR_FILENO);

我正在使用 select查看 fd 并查看输出是否可用。但直到现在,我只需要看 1 fd,现在我必须看 2。

注意 : 一个管道只能有两个末端,对吗?一个写入,另一个读取。我怎样才能适应这第三端 :D ??

最佳答案

您需要创建两个独立的管道并分别从它们中读取。应该不难,因为您已经有一个 select() 到位。

关于c - 区分管道上的标准输出和标准错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com