fork 函数 和vfork 函数的区别

时间:2022-08-18 05:53:08

问题描述:

        fork 函数 和vfork 函数的区别

问题解决:

fork函数使用:

fork 函数 和vfork 函数的区别

fork 函数 和vfork 函数的区别

注:

        以上printf 属于标准IO库带缓冲,如果标准输出链接到终端设备,则它是行缓冲,否则它是全缓冲

如果以控制台终端输出结果如下:

fork 函数 和vfork 函数的区别

   以上printf(“before  fork”)只输出一行,原因是标准输出由换行符冲洗


如果将输出结果重定向到文件,输出结果如下:

fork 函数 和vfork 函数的区别

由于文件是全缓冲,因此会看到两次 before  fork的输出



vfork函数使用:

fork 函数 和vfork 函数的区别

fork 函数 和vfork 函数的区别

注:

       vfork在子进程调用exec或exit之前,在父进程的地址空间中运行,vfork保证子进程先运行。

在此程序中,子进程执行完之后,释放局部变量local的空间,因此父进程执行时会出现段错误,

运行结果如下:

fork 函数 和vfork 函数的区别