0

考虑以下代码

    int     glob = 6;       /* external variable in initialized data */

    int
    main(void)
    {
        int     var;        /* automatic variable on the stack */
        pid_t   pid;

        var = 88;
        printf("before vfork\n");   /* we don't flush stdio */

        if ( (pid = vfork()) < 0)
            err_sys("vfork error");
        else if (pid == 0) {        /* child */
            glob++;                 /* modify parent's variables */
            var++;
            _exit(0);               /* child terminates */
        }

        /* parent */
        printf("pid = %d, glob = %d, var = %d\n", getpid(), glob, var);
        exit(0);
    }

这是一个解释如何使用 vfork 系统调用的示例。如果我不使用 _exit 而是使用 return,我会得到不同的输出值。返回不等于调用_exit吗?为什么不?

4

0 回答 0