exit() 与 _exit()

当需要结束一个进程的时候,可以使用exit()函数或_exit()函数来终止该进程。当程序运行到exit()函数或_exit()函数时,进程会无条件停止剩下的所有操作,并进行清理工作,最终将进程停止。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
头文件:#include<stdlib.h>

函数原型:void exit(int status)

函数参数:status 表示让进程结束时的状态,默认使用0表示正常结束

返回值:无

 

头文件:#include<unistd.h>

函数原型:void _exit(int status)

函数参数:status 同exit()函数

返回值:无

_exit()函数的作用最为简单:直接使进程终止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;

exit()函数在调用exit系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件,就是”清理I/O缓冲“。

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
int main(int argc, const char *argv[])
{
       printf("one!");
       //exit(0);//print one!
       _exit(0);//print nothing
       printf("two!\n");
       return 0;
}

Donate? comment?