这两个函数虽然看过好多遍了,但是过一阵遇到就不大清楚了,又要去翻书。现在写成博客,以后方便。
_exit()的作用最为简单:直接是程序终止运行,清除其使用的内存空间,兵销毁其在内核中的各种数据结构:
exit()函数则在这些基础上,先调用推出处理函数并清理I/O缓冲。
exit()函数在调用exit系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件,即“清理I/O缓冲”。
举例:
#include<stdlib.h>
int main()
{
printf("this process will exit!\n");//(1)
printf("this process will exit!");//(2)
exit(0);//_exit(0);
printf("nerver be displayed!");(3)
}
运行结果:(3)永远不会输出,
exit(): (1),(2)都输出
_exit():(1)输出,(2)没有