进程退出的几种方式

2023-10-27

进程退出的几种方式

当程序执行出错时,如果会导致后续的程序无法再执行下去,此时应该终止程序运行,而终止程序执行通常有如下几种方式。

1.return

在main函数中执行return可以终止进程,并将控制权交给调用函数。一般原则程序执行正常退出return 0,而执行函数出错退出return -1。

2.exit

exit()是一个标准C库函数,执行exit()会进行一些清理工作,最后调用_exit()函数。
函数原型:
void exit(int status);

3._exit()和_Exit()

_Exit()和_exit()等价,都属于系统调用,使用_exit()会清除其使用的内存空间,并销毁其在内核中的数据结构,关闭进程的所有文件描述符,并结束进程、将控制权交给操作系统。
函数原型:
void _exit(int status);
调用函数需要传入status状态标志,0表示正常结束、若为其它值则表示程序执行过程中检测到有错误发生。
实例代码:

#include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h> 
 #include <unistd.h> 
 #include <stdio.h> 
 int main(void) 
 { 
 	int fd;
 	/* 打开文件 */ 
 	fd = open("/tmp/test.txt", O_RDONLY); 
 	if (-1 == fd) {
 		perror("open file failed");
 		_exit(-1);
 	} 
 	close(fd);
 	_exit(0);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程退出的几种方式 的相关文章

随机推荐

  • vue项目怎么安装依赖

    安装node js 从node js官网下载并安装node 安装过程很简单 一路 下一步 就可以了 傻瓜式安装 安装完成之后 打开命令行工具 输入 node v 如下图 如果出现相应的版本号 则说明安装成功 npm包管理器 是集成在node
  • 不想学习的时候如何逼迫自己去学习?(长文预警)

    尼采曾用酒神和日神来比喻人类艺术活动的两种方式 一种是日神的 走向世界 追求成功 类的理性 一种是酒神的 走向内心 寻求超越 类的情感 而从学习上来看 由于中国特殊的教育环境 几乎不可能有后者的闲情逸致 家长们送孩子们上学 除了超一线城市确
  • Hive概论、架构和基本操作

    Hive是一个构建在Hadoop上的数据仓库框架 最初 Hive是由Facebook开发 后台移交由Apache软件基金会开发 并做为一个Apache开源项目 Hive是基于Hadoop的一个数据仓库工具 可以将结构化的数据文件映射为一张数
  • vue简单实现查询排序功能

  • Jenkins与SonarQube配置

    Jenkins与SonarQube Jenkins 配置 SonarQube 在 SonarQube 中生成 Server authentication token 登录 SonarQube 后 在 My Account gt Securi
  • 2020年蓝桥杯B组个人题解(热的,不知道对错)

    文章目录 A B C D E F G H I J 总结 结果 现在是蓝桥杯刚结束 趁着有记忆 写下这篇博客 不知道对错 如果我错了 请指出 A 因为是到0就结束了 那么每次看看 600是否结束 如果没有结束就 300 然后时间 2 60 最
  • 抗渗等级p6是什么意思_混凝土抗渗等级w4是什么意思?

    混凝土抗渗等级可按28d龄期的标准试件测定 混凝土抗渗等级分为 W2 W4 W6 W8 W10 W12六级 根据建筑物开始承受水压力的时间 也可利用60d或90d龄期的试件测定抗渗等级 抗渗等级是以28d龄期的标准试件 按标准试验方法进行试
  • jeeplus-js-获取table中复选框选中的列

    function getSelectedIds var str var ids contentTable tbody tr td input i checks checkbox each function if true this is c
  • 解决error C2065:"..."未声明的标识符,C2065:语法错误: 标识符“...”

    网狐项目工程中有时候会出现 C2065错误 一般情况下有可能是 项目工程配置出错 只需要选择 Visual Studio 2013 v120 就可以了
  • 算法笔记(5)-K最近邻算法及python代码实现

    K最近邻算法既可以用于分类又可以用于回归 K最近邻 k Nearest Neighbor KNN 算法分类的基本原理 如果一个样本在特征空间中的k个最相似 即特征空间中最邻近 的样本中的大多数属于某一个类别 则该样本也属于这个类别 K最近邻
  • 分析解决【No module named ‘triton‘】的问题

    文章目录 一 现象 二 分析 三 安装 3 1 项目虚拟环境 3 2 环境版本问题 三 与主题无关 一 现象 在Windows11下训练Stable Diffusion的LoRA模型的时候 总是重复提示 A matching Triton
  • nginx 配置文件关键字

    L1 location root html index index html index htm L1可以匹配到请求127 0 0 1 127 0 0 1 root html 是一个相对路径 表示以ng安装路径下html目录查找 index
  • x99芯片组服务器版叫什么,Intel X99主板、Z97主板以及H97主板的区别是什么?

    Intel X99主板 Z97主板以及H97主板的区别是什么 虽然让他出来丢人现眼 但是这个帖子却是冒了一定风险码出来的 题目就已经让人败坏了兴致 拿出来只会让专业人士嗤之以鼻 作为目前最新的Intel主板芯片组 9系列主板并没有受到很多朋
  • 印刷纸张尺寸,纸张种类规格

    印刷纸张尺寸 纸张种类规格 2007 07 25 15 17 正度16开 185x260 大度16开 210x285 开 又是什么单位 全开的纸能开出来多少张 就是多少开 例如 16K的就是全开开出16张 对开就是开出两张 一开是多大 全开
  • Cadence Orcad原理图导出pdf文件

    1 安装虚拟打印机 通过打印实现pdf文件输出 略 2 设置输出格式 1 点击file gt print gt print setup 2 设置尺寸与输出方向 3 点击确定 gt OK 开始转化并设置保存路径与文件名 3 打印出现页码错乱问
  • jquery获取隐藏元素的宽度高度

    info show 50 function var w info outerWidth console log w 注意 show的第一个参数不能为0否则在刷新页面或页面默认载入并显示该隐藏元素的时候 w仍然为0 虽然通过单击事件可以获取到
  • LeetCode343-整数拆分

    昨天晚上写作业时 腾讯的一条笔试通知邮件 着实让我有点吃惊 我三月份就投了鹅厂 身边的朋友早就面试了 自己的简历杳无音讯 本早就放弃了 却没想还能最后有次机会 害 要好好珍惜了 题目描述 给定一个正整数 n 将其拆分为至少两个正整数的和 并
  • CVPR2023 多目标跟踪(MOT)汇总

    一 OVTrack Open Vocabulary Multiple Object Tracking 作者 Siyuan Li Tobias Fischer Lei Ke Henghui Ding Martin Danelljan Fish
  • 初步使用LSTM网络

    声明 文中所有使用图片均来自网络 侵删 什么是LSTM LSTM Long Short Term Memory网络 是一种特殊的RNN类型 可以有效解决RNN神经网络存在的长期依赖问题 通过模仿人脑可以进行遗忘的功能 在每一个LSTM模块中
  • 进程退出的几种方式

    进程退出的几种方式 当程序执行出错时 如果会导致后续的程序无法再执行下去 此时应该终止程序运行 而终止程序执行通常有如下几种方式 1 return 在main函数中执行return可以终止进程 并将控制权交给调用函数 一般原则程序执行正常退