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

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

相关推荐
互联网打工人no12 分钟前
每日一题——第一百二十一题
c语言
AI街潜水的八角8 分钟前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习
JSU_曾是此间年少37 分钟前
数据结构——线性表与链表
数据结构·c++·算法
hjjdebug1 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯1 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流1 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布1 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习
朱一头zcy1 小时前
C语言复习第9章 字符串/字符/内存函数
c语言
Spring_java_gg2 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
此生只爱蛋2 小时前
【手撕排序2】快速排序
c语言·c++·算法·排序算法