fork函数可以用来创建子进程。
注意 fork函数失败是返回 -1的。
代码:
运行结果: 注意在子进程中,可以获取当前的进程号,但是其父进程却变成了 1号进程,即init。
再次更改代码,让父进程一直运行,即进入死循环,看看子进程的父进程是否还是init。
运行的结果:
现在可以看到在子进程中,子进程的father就是3508了。 因为在第一份代码中,父进程过早的消亡,导致子进程变成孤儿进程,就只能被init收养了。
或者在父进程中调用wait函数,也可以达到同样的效果:
运行结果:
另外,如果在子进程中使用了exit(status), 那么在父进程中,status的值是status<<8