exit函数:定义在C标准库stdlib.h中;当我们调用exit(0)时,表示正常退出当前进程,当我们调用eixt(1)时表示非正常退出当前进程。
_exit函数:定义在unistd.h中;直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;exit() 函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。
exit()函数在调用
exit系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件,就是"清理I/O缓冲"。
用一张图来表示:

exit()在结束调用它的进程之前,要进行如下步骤:
1.调用atexit()注册的函数(出口函数)
atexit()函数定义在stdlib中,它的函数定义为:int atexit(void (*)(void)),形

博客详细阐述了exit()和_exit()在进程终止时的不同行为。首先,通过调用atexit()注册的函数执行出口操作,接着是调用cleanup()关闭所有流,最后使用_exit()函数来终止进程。exit()函数会刷新缓冲区,而_exit()则不会。

1513

被折叠的 条评论
为什么被折叠?



