首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >理解C中的fork()顺序

理解C中的fork()顺序
EN

Stack Overflow用户
提问于 2018-12-11 06:50:41
回答 2查看 261关注 0票数 1

所以我有一个我想要理解的程序,它来自一个旧的考试,但我就是不能掌握它。我如何知道fork的顺序以及变量是如何改变的?

代码语言:javascript
复制
static int g = -1;

int main(int argc, char *argv[])
{
    int v = 0;
    pid_t p;

    while (v++ < 6)
        if ((p = fork()) < 0) {
            perror("fork error");
            return 1;
        } else if (p == 0) {
            v++;
            g--;
        } else {
            g++;
            v+=3;
        if (waitpid(p, NULL, 0) != p) {
            perror("waitpid error");
            return 1;
        }
    }
    printf("mypid = %d parentpid = %d p = %d v = %d g = %d\n",
    getpid(), getppid(), p, v, g);
    return 0;
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53714886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档