小弟刚刚学Linux,这里有一段程序,看不太懂,不知那位大哥可以帮帮
#include<stdio.h>
main()
{
int p1,p2;
while((p1=fork())==-1);
if(p1==0)
putchar('a');
else
{
while((p2=fork())==-1);
if(p2==0)
putchar('b');
else putchar('c');
}
}
输出结果是abc,可否解释一下为什么?另外子进程共享父进程的代码(一次程序为例)是如何实现的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个是linux 下的 C编译! 你发错地方了!
另外你先看到其中的语法,如果看不懂,及时说了你还是不明白!
回复 1# jakxj
可以这样理解,程序运行到fork时分成两个同时执行下去,不同的是一个fork返回的是0,一个不是
本帖最后由 a55569769 于 2011-04-28 23:03 编辑
子进程返回的是0,父进程返回的是子进程的pid,如果是-1的话说明创建失败了