linux 关于进程fork()的小问题 代码如下

[复制链接]
查看11 | 回复2 | 2012-3-17 23:27:14 | 显示全部楼层 |阅读模式
你要搞清楚父进程和子进程的关系。父进程fork出一个子进程,然后父进程退出,那么子进程就会成为 init 进程的子进程。而init进程的id就是1。你的代码里每次父进程fork后都退出,只留下了子进程。所以留下的子进程的父进程ID都是1了,因为他们都成了init进程的子进程。...
回复

使用道具 举报

千问 | 2012-3-17 23:27:14 | 显示全部楼层
估计你的机器是单cpu,单核。在单cpu,单核环境中,父进程一般是先运行,子进程后运行。在你的程序中,父进程没有wait()。因此,它在运行了4次fork()后,就退出了。而不是你想的,会等待子进程的运行。子进程在运行时,父进程已经结束。在这样的情况下,unix/linux操作系统把子进程,挂到init()进程上。而init()进程的pid=1。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行