echo本身也是进程 运行万上述命令后再运行echo $? 结果是0.
打印错误码:
得到ls进程退出码为2。
exit退出后,代码不继续执行。
进程等待
进程为什么等待:回收子进程资源,获取子进程退出信息。
子进程退出后,先变成僵尸状态,再等待wait回收。
waitpid:是系统调用,执行操作系统代码。获取子进程PCB信息。
status不是12的原因是位图结构。
信号:
信号代表非0代表抛异常,退出码不是零代表程序结束,但结果不对。
信号11代表段错误。
阻塞非阻塞
子进程运行期间,父进程轮询等待。非阻塞等待。
非进程等待,不会占用父进程所有精力,可以在轮询期间做别的事情。
进程等待原因:释放子进程僵尸状态,获取子进程状态。
方式:通过系统调用,让父进程等待子进程。