LinuxSir.cn,穿越时空的Linuxsir!

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

一个很次的问题:在linux环境中有几个父进程

[复制链接]
发表于 2005-1-4 09:36:26 | 显示全部楼层 |阅读模式
linux内核调入mem启动后,就有进程init(进程id=1,整个系统中各个子进程的父进程)掌管后面的一切shell调用,执行的事务。由init调用fork()产生子进程,一个子进程由fork(),exec(),wait(),exit()组成,那么如果再执行下面一段代码:
int main()
{
        int fd,pid;
        int pd[2];
                pid = fork();
        if(pid == 0)        //child
        {
                close(pd[0]);
                read(pd[1],&fd,sizeof(int));
                ......        }
        if(pid >0)        //parent
        {
                close(pd[1]);
                fd = open("select_serv.c",O_RDONLY,00700);
                write(pd[0],&fd,sizeof(int));
                               ........
        }
        return 0;
}
假如成功执行的话,这里的父进程处理的部分是同样由init()取处理吗?在linux环境中好像只有一个父进程。不解?
发表于 2005-1-4 10:38:27 | 显示全部楼层
用pstree可以看到进程树。看看就清楚了。
 楼主| 发表于 2005-1-4 11:24:15 | 显示全部楼层
那么就是说印证我的看法,在LINUX/UNIX 环境中,只有一个父进程。上面的当pid返回大于0时,也将其丢给init处理了。
发表于 2005-1-4 12:18:37 | 显示全部楼层
先弄清楚“父进程”的概念
 楼主| 发表于 2005-1-4 13:59:55 | 显示全部楼层
洗耳恭听!我对父子进程理解就是这样的:由init调用fork(),返回两种情况------------------->分配两个MEM区域给父子进程,子进程COPY父进程的堆栈区,数据区等到自己的MEM空间------------------>各自在自己的空间执行。有一点是肯定的,系统只有一个父进程init.
发表于 2005-1-4 18:00:03 | 显示全部楼层
我的理解有所不同:“父进程”是个相对的概念,某进程甲调用fork()创建了进程乙,进程乙调用fork()创建了进程丙,于是,甲是乙的父进程,乙是丙的父进程,显然乙不是甲的父进程,那么如果单单问乙是不是父进程,该如何回答呢? “Linux环境中有几个父进程”又该如何理解呢?
发表于 2005-1-4 21:30:16 | 显示全部楼层
Post by sybaselu
洗耳恭听!我对父子进程理解就是这样的:由init调用fork(),返回两种情况------------------->分配两个MEM区域给父子进程,子进程COPY父进程的堆栈区,数据区等到自己的MEM空间------------------>各自在自己的空间执行。有一点是肯定的,系统只有一个父进程init.

糊涂。子进程难道不能再产生自己的子进程,让它自己变成父进程吗?!!
 楼主| 发表于 2005-1-5 09:21:24 | 显示全部楼层
子进程当然可以再产生自己的子进程。但是在《UNIX ADVANCED PROGRAMMING》好像是这本书AUTHOR BY STEVERN,关于进程这一章明确的提到UNIX/LINUX系统只有一个父进程init.反之,如果系统不只有一个父进程,那么init作为父进程又如何理解。不吝赐教!
发表于 2005-1-5 10:27:57 | 显示全部楼层
肯定是你理解错了,stevens才不会这么教别人呢
发表于 2005-1-5 12:20:20 | 显示全部楼层
Post by sybaselu
子进程当然可以再产生自己的子进程。但是在《UNIX ADVANCED PROGRAMMING》好像是这本书AUTHOR BY STEVERN,关于进程这一章明确的提到UNIX/LINUX系统只有一个父进程init.反之,如果系统不只有一个父进程,那么init作为父进程又如何理解。不吝赐教!


请引出原文来看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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