当前位置: 技术问答>linux和unix
进程的问题
来源: 互联网 发布时间:2015-12-12
本文导语: main() { int i=10; if(fork()==0) { printf("%dn",i); i=100; } printf("%dn",i); } 输出为什么是 10 100 10 main() { int i=10; if(fork()==0) { pri...
main()
{
int i=10;
if(fork()==0)
{
printf("%dn",i);
i=100;
}
printf("%dn",i);
}
输出为什么是
10
100
10
main()
{
int i=10;
if(fork()==0)
{
printf("%dn",i);
i=100;
}
else
{
printf("%dn",i);
}
}
输出为什么又是
10
10
{
int i=10;
if(fork()==0)
{
printf("%dn",i);
i=100;
}
printf("%dn",i);
}
输出为什么是
10
100
10
main()
{
int i=10;
if(fork()==0)
{
printf("%dn",i);
i=100;
}
else
{
printf("%dn",i);
}
}
输出为什么又是
10
10
|
第一次if(fork()==0)后没有else
子进程和夫进程都执行第二个printf("%dn",i);
第二次if(fork()==0)后有else
if 里子进程执行 else里父进程执行所以只有两次printf
子进程和夫进程都执行第二个printf("%dn",i);
第二次if(fork()==0)后有else
if 里子进程执行 else里父进程执行所以只有两次printf