P7 Linux C三种终止进程的方法

前言

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》✨✨✨

🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》✨✨✨

🛸推荐专栏3: ​​​​​​《 链表_@ChenPi的博客-CSDN博客 》 ✨✨✨

🌺本篇简介 : 这章我们将Linux环境下终止进程的三种方法

01 三种终止进程的方法:

  1. main 函数中运行 return;
  2. 调用 Linux 系统调用_exit()或_Exit();
  3. 调用 C 标准库函数 exit()。

02 return关键字

return关键字大家应该都很熟吧

cpp 复制代码
#include <stdio.h>

int main()
{
	return 0;
}

每写一个程序基本都会写一遍这个

return是函数执行完后的返回。

return执行完后把控制权交给调用函数。

return()是当前函数返回。如果是在主函数main, 自然也就结束当前进程了

如果不是,那就是退回上一层调用。

在多个进程时.如果有时要检测上进程是否正常退出的.

就要用到上个进程的返回值,依次类推。

03 _exit()和_Exit()函数

_exit()函数原型:

cpp 复制代码
#include <unistd.h> 
 
void _exit(int status); 

调用函数需要传入 status 状态标志,0 表示正常结束、若为其它值则表示程序执行过程中检测到有错误 发生。使用示例如下:

示例代码: _exit()和_Exit()函数使用

cpp 复制代码
#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()函数原型如下所示:

cpp 复制代码
#include <stdlib.h> 
 
void _Exit(int status); 

_exit()和_Exit()两者等价,用法作用是一样的

需要注意的是这 2 个函数都是系统调 用。

04 exit()函数

exit()函数_exit()函数都是用来终止进程的,

exit()是一个标准 C 库函数

而_exit()和_Exit()是系统调用。

执行 exit()会执行一些清理工作,最后调用_exit()函数。

exit()函数原型:

cpp 复制代码
#include <stdlib.h>
 
void exit(int status);

该函数是一个标准 C 库函数,使用该函数需要包含头文件,该函数的用法和_exit()/_Exit()是 一样的

平时的话还是用C库函数比较好吧,毕竟移植性更好

如果要查某些函数的话,我们可以直接查man手册

这是Linux的终端,比如我们要查malloc函数,我们可以直接man malloc

然后回车,我们就能看到使用文档了

相关推荐
+72037 分钟前
如何在java中用httpclient实现rpc get请求
java·qt·rpc
rjszcb2 小时前
JSON格式,C语言自己实现,以及直接调用库函数(一)
c语言·json
_extraordinary_3 小时前
Linux基本指令(三)+ 权限
linux·运维·服务器
WalkingWithTheWind~3 小时前
Linux搭建Nginx直播流媒体服务RTMP/RTSP转Http-flv视频浏览器在线播放/Vue/Java/ffmpeg
java·linux·nginx·ffmpeg·vue·http-flv·rtsp
攻城狮7号4 小时前
【第四节】C++设计模式(创建型模式)-Builder(建造者)模式
c++·设计模式·建造者模式
fpcc4 小时前
设计心得——解耦的实现技术
c++·软件工程
水瓶丫头站住4 小时前
Qt中QRadioButton的样式设置
开发语言·qt
东方芷兰4 小时前
算法笔记 04 —— 算法初步(下)
c++·笔记·算法
xinghuitunan5 小时前
时间转换(acwing)c/c++/java/python
java·c语言·c++·python
@hdd5 小时前
深入理解 QObject的作用
qt