vfork和exit简单介绍

来源:互联网 发布:淘宝商家佣金怎么算 编辑:程序博客网 时间:2024/06/05 16:27

vfork函数和fork函数基本一致。但是它并不拷贝父进程的地址空间。

而是在执行exec或exit之前在父进程地址空间执行程序。

除此之外,vfork还能够保证子进程先执行,直到它调用了exit或者exec之后父进程才运行。


当进程退出时,会产生退出status,不论是正常退出还是异常退出;正常退出由线程本身产生exit status,而异常退出内核会发出exit status。

如果父进程比子进程先结束, 那么子进程就会被init进程接管,从而init进程成为子进程的父进程。

如果子进程退出,但是父进程此时并没有调用wait或waitpid,那么内核先接管子进程的部分消息,如id,退出状态,进程使用cpu时间等。直到父进程调用wait。

如果子进程退出了但是父进程没有等待子进程的退出,那么子进程成为僵尸进程,ps查看的时候以Z表示。

init进程会为每一个子进程都调用wait。

0 0
原创粉丝点击