我正在编写将一个进程分成两部分的代码,然后父进程通过管道将参数发送给 main 子进程。孩子一个一个地计算字符并打印出最终结果。然后父母应该使用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;
我也意识到这段代码没有错误检查......我只是想让它先工作......