プロセスを2つにフォークするコードを書いていると、親は引数をメインにパイプを介して子に送信します。子供は文字を1つずつ数え、最終結果を出力します。次に、親はwaitpid()を使用して子を刈り取ることになっています。
子プロセスでループを削除すると、リープが発生しますが、そのままにしておくと(これは必要です)、プログラムは実行されて終了しますが、リープは発生しません。なぜなのかわかりません。どんな助けでもありがたいです。これはクラスの宿題です。ありがとう!
これが私のコードです:
if( waitpid( pid, &status, WNOHANG ) > 0 )
{
printf( "parent reaps child status 0x%08X\n", status );
if( WIFEXITED(status) )
printf( "child exited normally with %d\n", WEXITSTATUS(status) );
}
close( out );
return 0;
また、このコードにはエラーチェックがないことを認識しています...最初に機能させようとしていました...