系统调用fork
fork的基本内容:
fork是依次调用两次返回,分别返回在父进程和子进程中
1)在父进程中,fork返回新创建子进程的进程ID;
2)在子进程中,fork返回0;
3)如果出现错误,fork则返回一个负值;
例子:
首先父进程输出L0,由于if中判断是否是子进程,所以直接输出Bye,进入一阶子进程,输出L1,Bye,执行fork但不进入if语句,进入二阶子进程输出L2,Bye,结束。
函数名: atexit()
头文件:#include<stdlib.h>
功 能: 注册终止函数
功能很简单,就是在exit()的时候调用函数,我们可以知道exit()被调用两次,就是父进程一次,子进程一次。
子进程结束但父进程不结束,从而导致shell出不来了。