僵死进程:子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程(子进程的PCB没有被删除,只有子进程的实体被删除,子进程没有完全消失)。
僵死进程会消耗内存空间,消耗软件层面的资源。
孤儿进程:父进程先于子进程结束,子进程变成孤儿进程。孤儿进程会被系统分配·一个父进程(继父),由父进程(继父)获取子进程的退出码,子进程消失。//被init进程(ID号为1的进程)接管,用wait获取子进程退出码。获取退出码调用wait时,要加头文件#include<sys/wait.h>
退出码范围:(-128~127)-1,0~127之间。退出码在一个字节范围内。
获取ID:
getpid()获取自己(子进程)的id,getppid()获取父进程的id。
ps:
当父进程结束时,提示符会自动弹出,而子进程尚未结束,会继续打印,子进程和提示符互不干扰。