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

2023-12-14 03:11:42

前言

? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ?

🎬 个人主页:@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关键字大家应该都很熟吧

#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?

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

文章来源:https://blog.csdn.net/weixin_73901182/article/details/134841068
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。