exit()和_exit()都是用来终止进程的,当函数运行到exit()或_exit()时,进程会无条件地停止剩下地所有操作,清除包括各种数据结构,并终止本进程的运行。
区别:
_exit()函数的作用是直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构;
exit()函数则是在以上基础上做了一些包装,在执行退出之间加了若干道工序,exit()在终止当前进程之前要检查该进程打开过哪些文件,把文件缓冲区内内容写回文件,就是下图中的“清理I/O缓存”。
exit()的使用可以保证数据的完整性。而_exit()则不一定。