#include
#include
#include
#include
#include
#include
#include
#include
main(void)
{
int a;
for(a=0;a<2;a++)
{
printf("\niiiiiiiiiiiiiiiiiiiiiiiii\n");}
int pid=fork();
for(a=0;a<2;a++)
{
printf("\nxxxxxxxxxxxxxxxxxxxx\n");
}
if (pid<0)
{
printf("error!\n");
exit(0);
}
else
if(pid>0)
{
printf("this is child:%d\n",pid);
}
else
{
int i=0;
for (;i<2;i++)
{printf("\nxxyou are a dog!xxx\n");
}
}
}
运行结果:
[eternel@localhost learn]$ ./a.out
iiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiiiiiiiiiiiii
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxyou are a dog!xxx
xxyou are a dog!xxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
this is child:19116
执行的流程 是怎么个顺序! 快晕死我拉!!!!!!!!
conqueror 于 2010-04-08 23:54:39发表:
if(pid>0)
{
printf("this is child:%d\n",pid);
}
楼主搞错了,pid>0时,说明是父进程
这条语句创建子进程:int pid=fork();子进程创建后,从这条语句下面开始执行.
而下面的语句执行时,父子进程执行顺序由系统进程调度决定,故次序不确定.
beautifulwyl 于 2009-08-10 23:13:50发表:
2# beautifulwyl
解决了 ! 补缺定的!大家最好不要 总是钻牛计较!应该是竞争机制吧!
beautifulwyl 于 2009-08-10 15:08:06发表:
fork()是创建系统进程的函数吧!
一个进程至少被一个程序拥有
一个线程至少被一个进程拥有
那么上面这个程序的进程是什么名称 ,它新创建的又一个进程在那里又叫什么名称?