前言
🎬 个人主页:@ChenPi
🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨
🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨
🛸推荐专栏3: 《 链表_@ChenPi的博客-CSDN博客 》 ✨✨✨
🌺本篇简介 : 这章我们将Linux环境下终止进程的三种方法
01 三种终止进程的方法:
- main 函数中运行 return;
- 调用 Linux 系统调用_exit()或_Exit();
- 调用 C 标准库函数 exit()。
02 return关键字
return关键字大家应该都很熟吧
#include <stdio.h>
int main()
{
return 0;
}
每写一个程序基本都会写一遍这个
return是函数执行完后的返回。
return执行完后把控制权交给调用函数。
return()是当前函数返回。如果是在主函数main, 自然也就结束当前进程了
如果不是,那就是退回上一层调用。
在多个进程时.如果有时要检测上进程是否正常退出的.
就要用到上个进程的返回值,依次类推。
03 _exit()和_Exit()函数
_exit()函数原型:
#include <unistd.h>
void _exit(int status);
调用函数需要传入 status 状态标志,0 表示正常结束、若为其它值则表示程序执行过程中检测到有错误 发生。使用示例如下:
示例代码: _exit()和_Exit()函数使用
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
int main(void)
{
int fd;
/* 打开文件 */
fd = open("./test_file", O_RDONLY);
if (-1 == fd) {
perror("open error");
_exit(-1);
}
close(fd);
_exit(0);
}
用法很简单,就是程序正常退出就0,非正常就是-1
_Exit()函数原型如下所示:
#include <stdlib.h>
void _Exit(int status);
_exit()和_Exit()两者等价,用法作用是一样的
需要注意的是这 2 个函数都是系统调 用。
04 exit()函数
exit()函数_exit()函数都是用来终止进程的,
exit()是一个标准 C 库函数
而_exit()和_Exit()是系统调用。
执行 exit()会执行一些清理工作,最后调用_exit()函数。
exit()函数原型:
#include <stdlib.h>
void exit(int status);
该函数是一个标准 C 库函数,使用该函数需要包含头文件,该函数的用法和_exit()/_Exit()是 一样的
平时的话还是用C库函数比较好吧,毕竟移植性更好
如果要查某些函数的话,我们可以直接查man手册
这是Linux的终端,比如我们要查malloc函数,我们可以直接man malloc
然后回车,我们就能看到使用文档了