当前位置: 首页 > news >正文

C++程序退出机制

C++程序退出机制

从几个std函数入手分析:

  • std::exit,用于正常流程退出,由用户显式调用。(main()函数返回 = 调用main内部局部变量的dtor + std::exit(0))。
  • std::terminate,用于异常流程退出,一般由库函数调用。
  • std::abort,直接终止程序。

其中只有std::exit()函数会执行清理动作,比如调用析构函数和执行std::atexit注册过的函数。

另外,std::asssert()断言失败时会输出错误信息 + 调用std::abort()。

具体描述可以看cppreference。

一图胜千言:
版权所有侵权必究

所谓static存储期对象,就是全局对象或者作用域内static声明的对象或者类的static成员。

接收到信号如何终止?

直接终止,除非信号被捕获。

多线程程序的终止?

参考上面的描述,我们只需要关注多线程程序中单个线程内调用std::exit()或std::abort()时会发生什么。

事实上,在一个线程中无论是调用std::exit()还是std::abort()都会引起整个程序的终止。

需要注意,多线程环境中调用std::exit()时只会调用static存储期对象或者调用线程的thread_local对象的析构函数,而不会调用其他线程的thread_local对象的析构函数,符合cppreference描述:

The destructors of objects with thread local [storage duration](dfile:///Users/peter/Library/Application Support/Dash/DocSets/C++/C++.docset/Contents/Resources/Documents/en.cppreference.com/w/cpp/language/storage_duration.html) that are associated with the current thread, the destructors of objects with static storage duration, and the functions registered with [std::atexit](dfile:///Users/peter/Library/Application Support/Dash/DocSets/C++/C++.docset/Contents/Resources/Documents/en.cppreference.com/w/cpp/utility/program/atexit.html) are executed concurrently, while maintaining the following guarantees:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35247.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Apollo学习笔记8-imu-lidarApollo3.0手动标定

imu-lidarApollo3.0手动标定参考文档参考文档 1:https://github.com/ApolloAuto/apollo/blob/r3.0.0/docs/specs/apollo_lidar_imu_calibration_guide.md. 2:https://github.com/ApolloAuto/apollo/blob/r3.0.0/docs/specs/D-kit/Auto_Driving–Sensor_calibration_cn.md. 3:h…...

什么是服务网格(Service Mesh)

本文来说下什么是服务网格 文章目录概述概述...

Hadoop Yarn

The fundamental idea of YARN is to split up the functionalities of resource management and job scheduling/monitoring into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is eit...

redis加锁、解锁

在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常,我们以synchronized 、Lock来使用它。 但是Java中的锁,只能保证在同一个JVM进程内中执行。如果在分布式集群…...

atcoder arc 122 a~b题Many Formulae、Insurance

A题链接 题目大意:不能存在两个及两个以上的减号,所有满足条件的式子之和。 题目思路:当时考试想到一半,就感觉编码能力不太会,然后就没做, 首先我们定义dp[N][2],这种选或不选的问题&#xff0…...

04_set容器_查找和统计

#include<iostream> #include<string> #include<set> using namespace std;//查找 void test01() {set<int>s1;s1.insert(10);s1.insert(30);s1.insert(20);s1.insert(40);set<int>:: iterator pos s1.find(30);if (pos ! s1.end()){cout <&…...

【pandas】根据其他表格列数据更新相应的列字段,apply()操作实例

今天在学习中&#xff0c;遇到一个小问题&#xff0c;需要把主表中的出行网格id&#xff0c;和终点网格id替换成对应的枢纽地点&#xff0c;从表中有每个枢纽对应的id&#xff08;一个枢纽对应多个网格id&#xff09; 1.原始数据如下图 上面是枢纽id,下方是出行信息 2.将数…...

数据库课程设计 大学生综合管理系统

问题描述&#xff1a; 设计并开发一套完整的在校大学生学习的综合管理系统&#xff0c;其中可包括以下几个模块&#xff1a; &#xff08;一&#xff09;选课管理&#xff1a;该系统包括教师、学生、系、课程和教室等信息&#xff0c;基本情况如下&#xff1a; 教师有工作证号…...

第十二周.直播.DGL-KG, LifeSci讲解

文章目录知识图谱背景DGL-KELifeSci双线性系列RESCAL摘要2. Modelling and Notation模型DistMult摘要模型ConvE为什么是2D不是1D卷积模型本文内容整理自深度之眼《GNN核心能力培养计划》公式输入请参考&#xff1a; 在线Latex公式DGL有三个比较知名的开源库&#xff0c;DGL-KG,…...

No qualifying bean of type ‘com.kkb.dao.*Mapper‘ available

没有查找到 *mapper对象程序报错没有查找到 mapper对象 可能造成的原因&#xff1a;缺少相应的注解 在SpringBoot的启动类中缺少 MapperScan SpringBootApplication MapperScan("com.yhp.dao") public class Application {public static void main(String[] args) …...

WPF 简单使用keybd_event模拟触发键盘

主要是添加Win32函数 其次是定义键盘按下&#xff0c;抬起的两个固定值。 [DllImport("User32.dll")]public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);/// <summary>/// 按下/// </summary>const int KEY…...

java程序员日常工作内容,Java面试题及解析

目录 Kafka的基本介绍Kafka的设计原理分析Kafka数据传输的事务特点Kafka消息存储格式副本&#xff08;replication&#xff09;策略Kafka消息分组&#xff0c;消息消费原理Kafak顺序写入与数据读取消费者&#xff08;读取数据&#xff09; Kafka的基本介绍 Kafka是最初由Lin…...

常用网络数据包丢失的分析与处理

网络管理维护过程中&#xff0c;经常会遇到数据包丢失的情况。用Ping命令进行连接测试&#xff0c;会发现Ping包的延迟远远超过正常值&#xff0c;甚至无法到达&#xff0c;同时伴随着网络服务应用的障碍&#xff0c;比如打开网站的速度太慢&#xff0c;严重时甚至无法打开网页…...

2021-06-23 SpringCloud Zuul网关filter添加或修改传递的参数

场景&#xff1a;通过网关转发服务到具体的ip地址 比如网关验证accessToken&#xff0c;需要拦截访问&#xff0c;然后在url中添加参数&#xff0c;如下 //1、这个是原来的参数数据 String accessToken request.getParameter("accessToken"); //2、转换后的数据 S…...

面试笔试题

1.src和href的区别 &#xff1f; 答:src用于替代当前的元素&#xff0c;而href用于建立这个标签与外部资源之间的关系。 href 是Hypertext Reference的简写&#xff0c;表示超文本引用&#xff0c;指向网络资源所在位置。 常用场景: <a href"http://www.baidu.com&…...

MySQL下载及配置过程

MySQL下载及配置过程 下载&#xff08;Windows&#xff09; 下载地址 https://dev.mysql.com/downloads/mysql/ 进入后的界面&#xff0c;点击Download下载。 点击Download进入此界面&#xff0c;点击标注的地方直接下载。 配置 这里只介绍 .zip 格式。 .zip格式不需要…...

DQL查询数据(最重点)

4、DQL查询数据&#xff08;最重点&#xff09; 4.1、DQL &#xff08;Data query Language&#xff1a;数据查询语言&#xff09; 所有的查询操作都用它 Select简单的查询&#xff0c;复杂的查询它都能做数据库中最核心的语言&#xff0c;最重要的语句使用频率最高的语句 …...

Redis之三种特殊数据类型

该笔记大部分搬运B站遇见狂神说的Redis&#xff0c;顺便把图文合并记录&#xff0c;便于回顾&#xff0c;仅用于学习&#xff01; 视频地址&#xff1a;https://www.bilibili.com/video/BV1S54y1R7SB?t250 作者真的非常好&#xff0c;记得三连 如有侵权&#xff0c;请联系删除…...

面向对象 实验4

实验四 对象作为数据成员 1 实验目的 学习对象作为类的数据成员的使用方法&#xff0c;学习对象数据成员的初始化以及“成员初始化器”的使用方法。 2 实验内容 2.1 使用Date类&#xff0c;定义Employee类 问题描述 在《实验三 面向对象初步》中&#xff0c;设计了日期类…...

闭关5个月,终于把这篇阿里P8大牛的数据结构与算法领悟明白!!以入阿里!!

数据结构是计算机科学与技术专业非常重要的-一门核心基础课&#xff0c;计算机科学各个领域及各种应用软件都要使用相关的数据结构和算法。 经历过校招的人都知道&#xff0c;算法和数据结构都是不可避免的。像拼多多、头条这种大公司&#xff0c;上来就来几道算法题&#xff…...

题解报告:m10

找abc(add) 问题描述&#xff1a; 有两个正整数集合{An},{Bm}&#xff0c;其中整数值均不超过106。输出正整数x&#xff0c;判断是否存在A中的一个数a与B中的一个数b的和为x。 输入格式&#xff1a; 第一行为正整数t(≤5)&#xff0c;表示数据组数&#xff1b;每组数据中&a…...

输出第一个仅出现一次的字符

#include <stdio.h> #include <string.h> int main(){char s[100005]{0};gets(s);char ch;int i,num0,flag0;for(cha;ch<z;ch){for(i0;s[i]!\0;i){if(chs[i]){num;}}if(num1){flag1;break;}num0;}if(flag1)printf("%c",ch);elseprintf("no"...

vue项目写的样式应用不到元素上?elementUI等框架的坑

vue项目写的样式应用不到元素上&#xff1f;scoped原理接着坑就来了解决方法1、修改父元素的样式2、深度作用选择器使用vueelementUI写个项目时发现写的样式应用不到元素上&#xff0c;任凭!important也毫无作用&#xff01;看看你是否也踩了这个坑吧&#xff01; scoped原理 …...

箭头函数以及箭头函数的this关键字

//箭头函数是用来简化函数定义语法的const fn () > {console.log(123)}fn();// 在箭头函数中 如果函数体中只有一句代码 并且代码的执行结果就是函数的返回值 函数体大括号可以省略function sum (n1, n2){return n1 n2;}const sum (n1, n2) > n1 n2; // 在箭头函数中…...

Java小白入门200例23之阶乘计算

作者简介 作者名&#xff1a;编程界明世隐 简介&#xff1a;CSDN博客专家&#xff0c;从事软件开发多年&#xff0c;精通Java、JavaScript&#xff0c;博主也是从零开始一步步把学习成长、深知学习和积累的重要性&#xff0c;喜欢跟广大ADC一起打野升级&#xff0c;欢迎您关注&…...

2-6.JAVA三大框架

Spring MVC 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)&#xff0c;生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherS…...

Centos操作操作系统下安装mariadb数据库管理系统

1.查看是否安装mariadb rpm -qa|grep maridb 这种情况表示已安装,直接执行第三步&#xff0c;反之若没有任何东西&#xff0c;则执行第二步 2.安装mariadb yum install mariadb-server yum install mariadb yum install mariadb-devel 3.启动mariadb service mariadb start 4.…...

.detach().cpu().numpy()该段代码的作用

detach(): 返回一个新的Tensor&#xff0c;但返回的结果是没有梯度的。 cpu():把gpu上的数据转到cpu上。 numpy():将tensor格式转为numpy。 如图所示&#xff1a; out logits.detach().cpu().numpy()...

VISSIM二次开发(Python)大作业总结2

VISSIM二次开发&#xff08;Python&#xff09;&大作业总结2 写在前面 前一小节已经概括了基本所有这次使用的二次开发的知识&#xff0c;在这一小节&#xff0c;我们主要介绍本文对.att文件的读取和绘图以及分析的工作。 在这一部分我们将展开对这一部分的介绍&#xf…...

Python学习日记3

今天换了一个视频资源学习&#xff0c;因为发现之前的教学视频讲的是python2&#xff0c;python2跟现在的python3差别很大&#xff0c;所有换了一个平台学习。 今天学习内容主要是把python重新从头看了一遍&#xff0c;重新学习了一下&#xff0c;补充了关系运算符的知识&…...

驾校预约管理系统

练手项目 《驾校预约管理系统》 springBootsymeleafvue 第一天&#xff1a;建好数据库&#xff0c;完成登录和公告模块所有功能 数据库实体类字段表如下&#xff1a; //管理员 public class Manager {private int id;private String username;private String password;priv…...

基于SSM的驾校预约管理系统Java驾校管理系统JSP驾校学员信息管理系统(源码调试+讲解+文档)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、微信小程序、Python、Android等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&#x1f495;学习资料…...

拓客系统专用服务器,北京拓客系统

(一)&#xff0c;货架是一种架式结构物。可充分利用库房空间利用率&#xff0c;扩展库房贮存才华。(二)&#xff0c;货架小的货品&#xff0c;存取便利&#xff0c;便于清点及计量。(三)&#xff0c;确保存储货品的质量&#xff0c;可以采纳防潮、防尘、坏等办法&#xff0c;以…...

关于scite文本编辑器的说明

目录(?)[] 关于scite文本编辑器的说明text editor文本编辑器scite的配置文件类型text editor文本编辑器scite用户配置例子text editor文本编辑器scite配置详细说明 关于scite文本编辑器的说明scite,也就是SCIntilla based Text Editor, 基于SCIntilla编辑组件的文本编辑器。我…...

windows select最多能监视多少个句柄

[codeC/C]我在windows下使用select步骤如下 while(1) { FD_ZERO&#xff08;&fds&#xff09;&#xff1b; for(i 0; i < 64; i) { fd_set(sock[i], &fds); //sock[i]都已成功创建&#xff0c;并且都可以收到数据。 } ret select&#xf…...

[转]scite文本编辑器的说明

scite,也就是SCIntilla based Text Editor, 基于SCIntilla编辑组件的文本编辑器。我们见到的许多文本编辑器都是基于SCIntilla编辑组件的。 yidabu.com经过比较发现&#xff0c;同样是基于SCIntilla的文本编辑器&#xff0c;scite的功能最为强大。 scite可以干什么呢&#xff1…...

CF思维训练,2020长春CCPC(A,D)

D. Knowledge Cards(华容道GAME) 题意&#xff1a;给定n*m的矩阵&#xff0c;初始在左上角有一摞牌&#xff0c;从上到下每张的数字构成了一个长度为k的排列&#xff0c;请问在保证1.不能使得牌在移动过程中重叠2.不能让牌反复出现在左上和右下角。这两个条件下&#xff0c;能…...

山东科技大学第二届ACM校赛解题报告

这次校赛的目的&#xff0c;是为了省赛测试各种程序是否有问题。 热身赛的逗比题有点打击我&#xff0c;感觉正式赛应该不会出这种问题。开始的时候直接上了A题&#xff0c;然后大概是第六&#xff0c;前面好多友情队&#xff0c;正式队排名第二。 然后读了读B题&#xff0c;稍…...

省赛选拔赛——组队赛第一场

Rank 3。 这次的题是第七届浙江省省赛的题&#xff0c;出了6道&#xff0c;感觉还可以&#xff0c;第一次打组队&#xff0c;配合上稍有欠缺。 当时做题的细节记不清了&#xff0c;大体顺序还记得&#xff0c;开场我看B简单就先做了&#xff0c;CE一次WA一次。。 后来跟榜出…...

上交所 EzOES PBU

数据库表&#xff1a;详解参见上交所的《竞价撮合平台市场参与者接口规格说明书》 表1委托申报表 ordwth&#xff1a; ord是order缩写表示下单&#xff0c;wth是withdraw缩写表示撤单。EzOES访问该表时&#xff0c;主要通过rec_num字段进行定位&#xff0c;故必须以rec_num为K…...

设置 Scite编辑器的默认编辑为 UTF-8 ,及其他一些参数配置

打开 Scite, 点击 菜单 Options > Open user options file 搜索 “#code.page65001″ 后&#xff0c;去掉前面的&#xff03;号 搜索 “code.page0” 后&#xff0c;在前面加上#号 保存并重新运行Scite 本人喜欢的配置如下&#xff1a; tabsize4 #将tab键设置为4个空格 ind…...

【服装行业】服装企业如何挑选erp

跟着我国服装业进入国际化和品牌化的竞赛年代&#xff0c;产品策划和商场营销、供应链的快速呼应、渠道网络的建造等等都成为服装企业需求提升的办理要点&#xff0c;而作为这些办理提升的基础支撑——企业信息化成为更令老板们头疼的问题。 业务的问题总归可以依靠多年的商场经…...

转SciTE的配置文件

SciTE的配置文件 #~ 中文字符乱码正确显示#linux下面使用:code.page65001if PLAT_WIN code.page936 output.code.page936if PLAT_GTK code.page65001 output.code.page65001#~ Big5:code.page950#~ 最大化position.width-1position.height-1#~ 滚动条end.at.last.l…...

开源一套易语言网络验证源码

分享一套易语言写的网络验证源码&#xff0c;纯易语言编写&#xff0c;限期开放全部源码&#xff0c;可修改、可现用、可参考。 这套系统已经稳定运行5个月了&#xff0c;并且是使用人数最多的&#xff0c;也是易语言用户最喜欢的一套。提供高防服务器&#xff08;目前也…...

百宝云开源【易语言网络验证系统】完整版,可一键安装

百宝云网络验证V4版 本次百宝云推出的网络验证是为易语言作者量身打造的网络验证系统, 此免费版支持同时在线用户为80-200个&#xff08;视心跳时间而定&#xff09;&#xff1b;任意生成充值卡零收费&#xff0c;支持自动更新和自定义数据防破解~快来体验吧&#xff01; PS&am…...

系统时间同步服务器工具,易神系统报盘子系统时间同步工具(EzNTP)

易神系统报盘子系统时间同步工具EzNTP提供和新交易系统通信服务器通过NTP协议实现的时间同步功能&#xff0c;仅支持Windows操作系统&#xff0c;最新版本增加界面输出时间差提醒的阈值。相关软件软件大小版本说明下载地址易神系统报盘子系统时间同步工具(EzNTP)提供和新交易系…...

modbus协议讲解,上位机与PLC交互

开发过程中modbus-RTU需要电脑USB口对外交互&#xff0c;参考我的文章&#xff1a;C# 通过Com端口和单片机通讯&#xff08;232/485/USB&#xff09;_花开莫与流年错_的博客-CSDN博客_c#与单片机通信 上位机和PLC交互的消息在Excel中配置&#xff0c;配置后通过Modbus协议加载…...

第03章 Tableau基础操作

序言 1.内容介绍 ​ 本章介绍了Tableau的工作区及其操作、维度和度量及相关操作、连续和离散、数据和视图的导出操作等。 2.理论目标 了解Tableau工作区的典型操作掌握维度和度量的区别掌握离散数据和连续数据的区别 3.实践目标 熟练使用Tableau软件熟练进行数据的导入以及…...

Tableau入门(Tableau10.5.0)

一、基本认识 1.功能界面 1.1开始界面 连接&#xff08;文件、数据库、服务器等数据源&#xff09;&#xff0c;打开&#xff08;可视化工作簿&#xff09; 1.2数据源界面 1&#xff09;左侧窗格 显示连接的文件/数据库/服务器及数据表 2&#xff09;画布 连接一个或者多…...

Web3.0带来天翻地覆的变化?全面科普!所谓的Web3.0到底是什么?

Web3.0在2021年尾声突然蹿红&#xff0c;在美国国会的听证会里&#xff0c;一句“我们如何确保web3革命发生在美国”引发了大家对于Web3.0的关注&#xff0c;而后马斯克一篇内容为“有人看过web3.0吗? 我没有找到”的推文&#xff0c;将关于Web3.0的讨论推向了高潮。 甚至于这…...