UNIX(或LINUX)中的退出和等待功能
我正在编写一个模拟基于unix的操作系统的程序,我有一些问题:UNIX(或LINUX)中的退出和等待功能,linux,unix,process,operating-system,exit,Linux,Unix,Process,Operating System,Exit,我正在编写一个模拟基于unix的操作系统的程序,我有一些问题: 来自unix.org wait()函数将挂起调用线程的执行 直到其一个终止的子进程的状态信息可用,或者直到其操作是执行信号捕获功能或终止进程的信号发出为止 让我们设想有一个进程A,它有两个子进程B和C。如果B和C调用退出功能,然后A调用等待功能,将检索哪个退出状态?是来自B的还是来自C的?首先是哪一个?为什么 2.当进程处于等待状态时,它不会执行其代码,例如,直到其中一个终止的子进程的状态信息可用,对吗? 例如,它不能在等待时调用
wait()
返回退出的任何子进程的PID。如果有两个已退出,则必须调用wait()
两次并检查返回的PID。你不应该依赖订单wait()
(不带WNOHANG
选项)的目的就是阻止。因此,在等待过程中,除了处理信号外,你不能做任何其他事情wait()
中时,它不能执行任何其他操作(在单线程进程中)root
可以杀死其他人的进程(通常);但是没有其他人可以杀死root
的进程waitpid()
和拥有WNOHANG
选项的朋友;普通wait()
不会。