小弟刚刚学Linux,这里有一段程序,看不太懂,不知那位大哥可以帮帮

发布于 2022-10-15 08:22:02 字数 861 浏览 22 评论 0

#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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蘸点软妹酱 2022-10-22 08:22:02

这个是linux 下的 C编译! 你发错地方了!
另外你先看到其中的语法,如果看不懂,及时说了你还是不明白!

美男兮 2022-10-22 08:22:02

回复 1# jakxj

    可以这样理解,程序运行到fork时分成两个同时执行下去,不同的是一个fork返回的是0,一个不是

太阳男子 2022-10-22 08:22:02

本帖最后由 a55569769 于 2011-04-28 23:03 编辑

子进程返回的是0,父进程返回的是子进程的pid,如果是-1的话说明创建失败了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文