main()
{
if (fork() || (fork() && fork()))
printf("AA\n");
else if (!fork())
printf("BB\n");
else
printf("CC\n");
}
我运行了以下代码并得到结果 AA AA CC BB CC BB。
虽然我了解 fork 的工作原理,但我不明白它对逻辑运算符的作用。我们班的老师要我们给出这份作业的答案。虽然我可以轻松运行这个程序,但我想知道到底发生了什么。
任何人都可以解释或引导我访问一个网站,了解使用 fork 和逻辑运算符时会发生什么情况。
我对 c/c++ 还很陌生,所以对我来说要轻松一些。谢谢
fork()
回报0
(false) 对于子进程,非零 (true) 对于父进程。
您可以对这些布尔值应用逻辑运算符。
请记住,逻辑运算符会短路,所以0 || fork()
不会打电话fork
at all.
如果您仔细阅读代码并思考每个代码的含义fork()
呼叫将返回,您应该能够弄清楚。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)