【Linux】进程控制(二):进程终止 exit 和 _exit
文章目录
一、进程退出的场景
(1) 程序跑完了所有代码 ,从 main 函数的 return 返回。
一种是,代码跑完了结果正确
另一种是,代码跑完了结果不正确
(2) 程序没有跑完,直接崩溃掉了。
在 gdb 调试时,6 号信号 double free,11 号信号解引用空指针、访问越界。
二、常见进程退出的方法
2.1 正常退出
(1) 从 main 函数的 return 返回
(2) 库函数 exit 函数,终止掉一个进程
#include <stdlib.h>
void exit(int status);
(3) 系统调用 _exit 函数,终止掉一个进程
#include <unistd.h>
void _exit(int status);
(4) 自定义清理函数 atexit
#include <stdlib.h>
int atexit(void (*function)(void));
补充: 使用 echo $?
能够获取最后一次终止进程的退出码
2.2 异常退出
ctrl + c
信号终止
内存访问越界
解引用空指针
double free
kill 命令
程序崩溃
三、exit 函数
代码一:
#include <unistd.h>
#include <stdlib.h>