当前位置: 技术问答>linux和unix
为什么linux下进程结束后,需要使用wait或者waitpid释放资源?
来源: 互联网 发布时间:2015-06-15
本文导语: 我只是不明白,这样做究竟有什么目的,为什么当初设计者不设计成在进程本身调用exit时直接释放所有资源,而是要等到父进程调用WAIT 这样做有什么好处 | 这个概念沿自unix,假如一个程序...
我只是不明白,这样做究竟有什么目的,为什么当初设计者不设计成在进程本身调用exit时直接释放所有资源,而是要等到父进程调用WAIT
这样做有什么好处
这样做有什么好处
|
这个概念沿自unix,假如一个程序退出总要有原因,不管是正常还是异常,那么总要给用户留出处理这些异常的机会。比如一个server程序要固定fork出2个进程与远程的client做tcp长连接,传输数据。如果child异常退出则必须马上重新建立连接,保证server的有效性。
|
有的时候做Accouting,父进程需要知道子进程的一些资源信息。
要不你自己看看waitpid的实现,就明白了。
子进程不能像鬼一样,突然不见了,怎么说也得给父进程打个招呼。
要不你自己看看waitpid的实现,就明白了。
子进程不能像鬼一样,突然不见了,怎么说也得给父进程打个招呼。
|
也不是,如果你忽略SIGCHLD信号,子进程的退出对于父进程是没有什么影响的,
对于你的程序,可能子进程的退出情况不用关心,但是不是你一个人在写程序,就
这么简单。
对于你的程序,可能子进程的退出情况不用关心,但是不是你一个人在写程序,就
这么简单。