繁体   English   中英

我怎么知道哪个孩子退出了C语言?

[英]How can I know which child has exited in C?

我有3个孩子每次在不同的时间以不同的顺序结束,但我不知道如何首先得到哪一端

我有类似的东西,“赢家”,“第二”和“第三”,随机生成的时间,第一个结局是“赢家”,但我不知道它是谁

    wait(&winner);
wait(&second);
wait(&third);
printf("======================================\n");
printf("----------Classification---------------\n");
printf("======================================\n");
printf("-First-.... Team %d , time: %d\n",/*1*/, WEXITSTATUS(winner));
printf("-Second-.... Team %d , time: %d\n",/*2*/, WEXITSTATUS(second));
printf("-Third-.... Team %d , time: %d\n",/*3*/, WEXITSTATUS(third));

您应该阅读wait(2)的手册页。 它返回等待进程的pid_t

您可能还想使用waitpid (如果不想真正地以阻塞方式使用W_NOHANG )。

另外,读信号(7) 您可以处理SIGCHLD ....

高级Linux编程有几个与此问题相关的章节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM