2016-10-04 1 views
0

私はCでシステムプログラミングをしていますが、問題が発生しました。子プロセスの標準出力を見るには?

子プロセスをfork()し、pipe()を使用して親から子にメッセージを送信します。そして、子供はパイプから入ってくるメッセージを受け取ります。私がしたいのは、このメッセージを子供の画面にプリントアウトすることです。しかし、write(stdout、message、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()を実行すると、プログラムとすべてのデータを含むアドレス空間の同一のコピーが作成されます。システムコールfork()は、子プロセスIDを親プロセスに返し、0を子プロセスに返します。

関連する問題