|

楼主 |
发表于 2005-1-6 09:43:05
|
显示全部楼层
就像刚开始这段代码,main()作为主程序的一次运行诞生了爹进程,期间用fork()生了一个儿进程,分配了两个MEM区域作为爹儿进程的执行空间。
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;
}
当pid==0时,由儿进程执行下面这段代码:
close(pd[0]);
read(pd[1],&fd,sizeof(int));
反之,由爹进程main()执行下面这段代码:
close(pd[1]);
fd = open("select_serv.c",O_RDONLY,00700);
write(pd[0],&fd,sizeof(int));
........ |
|