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