亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教一下,有_exit和沒有的區(qū)別是什么? [打印本頁]

作者: hgcwhz    時間: 2007-08-17 15:02
標(biāo)題: 請教一下,有_exit和沒有的區(qū)別是什么?
#include "def.h"
int glob = 10;
void test_vfork(void);
int
main(void)
{
    char* buf = malloc(sizeof(char)*16);
    sprintf(buf,"in main glob = %d\n",glob);
    write(STDOUT_FILENO,buf,strlen(buf));
    test_vfork();
    sprintf(buf,"in main glob = %d\n",glob);
    write(STDOUT_FILENO,buf,strlen(buf));
    exit(0);
}
void
test_vfork(void)
{
    pid_t pid;
    if((pid = vfork()) < 0)
        errmsg("vfork error\n");
    else if( pid == 0 )
    {
        glob++;
        printf("in vfork glob = %d\n",glob);
//      _exit(0);
    }
    if(waitpid(pid,NULL,0) != pid)
        errmsg("waitpid error\n");
}

程序的運行流程是怎樣的?
在我機(jī)器上如果有_exit(0),我預(yù)料一樣,沒有_exit結(jié)果如下:
in main glob = 10
in vfork glob = 11
waitpid error
error number is :No child processes
in main glob = 11
in vfork glob = 12
waitpid error
error number is :No child processes
Killed
是什么原因呢?
謝謝指點!
作者: fcloudf    時間: 2007-08-17 15:22
_exit(0) is not flush stdin, stdout, etc.....
作者: hgcwhz    時間: 2007-08-17 15:32
_exit對上面那個程序的影響是什么?謝謝
作者: hgcwhz    時間: 2007-08-17 16:47
明白了,是vfork的原因。
作者: MMMIX    時間: 2007-08-17 17:58
為嘛老有人研究這個 vfork?
作者: fcloudf    時間: 2007-08-17 22:27
就是,就是,都沒人用vfork




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2