2016-10-04 76 views
0

所以我在做一些系統編程C.我遇到了一個問題。如何查看子進程的stdout?

我fork()一個子進程,然後用pipe()從父進程發送消息給子進程。孩子確實收到來自管道的傳入消息。我想要做的是將這個信息打印到孩子的屏幕上。但是寫(標準輸出,消息,xxx)將不起作用,因爲它會將消息打印到父屏幕。

所以我想知道需要做什麼才能將消息打印到孩子的屏幕上。

感謝。

+0

你需要一個包含程序和所有數據的相同的地址空間拷貝讓孩子寫信給自己的STDOUT。 – user3344003

回答

0

不使用寫(標準輸出.....

試試像下面:打印「子進程」,從管接收到的消息功能

void main(void) 
{ 
    pid_t pid; 

    pid = fork(); 
    if (pid == 0) 
      ChildProcess(); 
    else 
      ParentProcess(); 
} 

void ChildProcess(void) 
{ 
    int i; 


    printf(" *** Message recieved from parent pipe ***\n"); 
} 

這是它背後的概念當主系統調用fork()返回子進程ID給父進程,並返回0給子進程。

相關問題