LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 627|回复: 3

[请教]关于fork()

[复制链接]
发表于 2005-1-5 21:29:23 | 显示全部楼层 |阅读模式
如果fork不是在main()里调用的,那么子进程是什么时候退出的?比如:

  1. int SomeFunc()
  2. {
  3.     ...
  4.     int pid;
  5.     pid = fork();
  6.     ...
  7.     return pid;
  8. }

  9. int main()
  10. {
  11.     ...
  12.     SomeFunc();
  13.     ...
  14.     return 0;
  15. }
复制代码

子进程应该也是在main()退出的时候退出吧?也就是说,子进程不会是在SomeFunc()返回的时候就退出了吧?
发表于 2005-1-5 22:15:33 | 显示全部楼层
进程不会在SomeFunc()返回时退出。在你这个简单程序中,应该是main()结束后退出。
如果有其他地衣调用exit()的,也可以随时退出。
发表于 2005-1-5 22:21:57 | 显示全部楼层
一个进程会由于以下5个原因之一被终止:
(1)它的main函数调用了return
(2)它调用了exit
(3)它调用了_exit
(4)它调用了abort
(5)它被一个信号终止
 楼主| 发表于 2005-1-5 22:53:06 | 显示全部楼层
多谢啦~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表