P7 Linux C三种终止进程的方法
前言
? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ?
🎬 个人主页:@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?
然后回车,我们就能看到使用文档了
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!