_exit和return之间的区别

时间:2012-12-01 21:24:40

标签: c fork exit

考虑以下代码

    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?为什么不呢?

0 个答案:

没有答案