解释这段代码的工作;子进程怎么返回值呢? [英] Explain this code's working; how the child process returns values and where?
本文介绍了解释这段代码的工作;子进程怎么返回值呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$ p
输出是6,7;
问题来源: http:// www .cs.utexas.edu /〜mwalfish / classes / s11-cs372h / hw / sol1.html
程序1:
main()
{
val = 5;
if(fork())
wait(& val);
val ++;
printf(%d\\\
,val);
return val;
}
解决方案
主要流程:
val = 5;
wait(& val); //等待小孩完成
子进程:
val ++; // val变为6
printf(%d\\\
,val); // print 6
return val; //返回val返回主进程
主进程:
wait(& val); // val变为6
val ++; // val变为7
printf(%d\\\
,val); // print 7
return val;
I don't get how the value is returned by a child process and to whom?
Output is 6, 7 ; question source: http://www.cs.utexas.edu/~mwalfish/classes/s11-cs372h/hw/sol1.html
Program 1:
main()
{
val = 5;
if(fork())
wait(&val);
val++;
printf("%d\n", val);
return val;
}
解决方案
Main process:
val = 5;
wait(&val); // wait until child finishes
Child process:
val++; // val becomes 6
printf("%d\n", val); // prints 6
return val; // return val back to main process
Main process:
wait(&val); // val becomes 6
val++; // val becomes 7
printf("%d\n", val); // prints 7
return val;
这篇关于解释这段代码的工作;子进程怎么返回值呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文