|
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环境中好像只有一个父进程。不解? |
|