1.exit
- 功能:正常终止进程(库函数)
- 原型:
void exit(int status);
- 参数:
1)status:退出状态码 - 返回值:
无返回值 - 执行过程:
a.调用 atexit() ,注册函数→在程序退出时被调用,原型int atexit(void (*function)(void));(成功:返回0;失败:返回非0)
b.刷新用户态缓冲区
c.调用 _exit(),正常终止
2._exit
- 功能:正常终止进程(系统调用)
- 原型:
void _exit(int status);
- 参数:
1)status:退出状态码 - 返回值:
无返回值
3.abort
- 功能:异常终止进程,内核给进程发送 SIGABRT 信号
- 原型:
void abort(void);
- 参数:
无 - 返回值:
无 - DO
#include <func.h>
void func(void) {
printf("I am going to die...");
}
int main(int argc, char* argv[]) {
int err = atexit(func);
if (err) {
error(1, 0, "atexit");
}
printf("Hello World");
exit(123);
}
#include <func.h>
void func(void) {
printf("I am going to die...");
}
int main(int argc, char* argv[]) {
int err = atexit(func);
if (err) {
error(1, 0, "atexit");
}
printf("Hello World");
_exit(123);
}
#include <func.h>
void func(void) {
printf("I am going to die...");
}
int main(int argc, char* argv[]) {
int err =atexit(func);
if (err) {
error(1, 0, "atexit");
}
printf("Hello World\n");
abort();
printf("You cannot see me!");
return 0;
}