Linux C 捕捉 Ctrl+C 的SIGINT信号

news2024/12/25 0:58:17

kill -l可以看每个数字对应的信号

信号值9和15的区别:

  • kill命令默认是-15,代表的信号为SIGTERM,在结束此进程之前,允许此进程做一些清理工作

  • kill -9会直接杀死目标进程,不给其机会做清理工作

按键盘的 Ctrl+C时,会产生SIGINT信号(等价于kill -2)

#include <stdio.h>
#include <signal.h>
#include <stdlib.h>

void Get_CtrlC_handler(int sig) {
    char c;

    signal(sig, SIG_IGN);
    printf("捕捉到Ctrl-C\n是否真要退出?[y/n] ");

    c = getchar();
    if (c == 'y' || c == 'Y')
        exit(0);
    else
        signal(SIGINT, Get_CtrlC_handler);
    getchar();
}

int main(void) {
    signal(SIGINT, Get_CtrlC_handler);
    while (1) {
        sleep(1);
        printf("已过去1秒,按Ctrl+C可退出\n");
    }
    return 0;
}

输出

已过去1秒,按Ctrl+C可退出
已过去1秒,按Ctrl+C可退出
已过去1秒,按Ctrl+C可退出
已过去1秒,按Ctrl+C可退出
^C捕捉到Ctrl-C
是否真要退出?[y/n] n
已过去1秒,按Ctrl+C可退出
已过去1秒,按Ctrl+C可退出
已过去1秒,按Ctrl+C可退出
^C捕捉到Ctrl-C
是否真要退出?[y/n] y

参考链接🔗:http://www.csl.mtu.edu/cs4411.ck/www/NOTES/signal/install.html

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

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

相关文章

测试高薪必备

测试人员由于工作原因要经常检查数据库的数据是否正确&#xff0c;这个时候就需要频繁使用多表查询。 在多表查询中&#xff0c;应用最多的就是内连接&#xff0c;其次就是子查询。 为什么子查询是在工作中应用也有这么广泛的应用呢&#xff1f;原因在于子查询非常方便…

macOS下使用vscode+xdebug调试php

手动安装xdebug1、浏览器访问https://xdebug.org/wizard2、在本地终端输入php -i 命令&#xff0c;将输出的内容复制到指南中的输入框中并提交分析3、分析完后会给出分析概览&#xff0c;然后根据下面提示步骤进行手动安装即可第5步中的phpize 命令位置:/usr/local/Cellar/php7…

神经网络基础与原理

7.1 神经网络基础与原理 学习目标 目标 了解感知机结构、作用以及优缺点了解tensorflow playground的使用说明感知机与神经网络的联系说明神经网络的组成说明神经网络的分类原理说明softmax回归说明交叉熵损失应用 无 7.1.1 神经网络 人工神经网络&#xff08; Artificial N…

Oracle数据库卸载安装

卸载oracle步骤&#xff1a;1.首先关掉所有oracle的相关服务&#xff0c;然后找到oracle的卸载程序Universal Installer&#xff1a;2.卸载&#xff0c;删除所有应用然后继续点击卸载产品&#xff0c;然后点击展开全部&#xff0c;将主目录以外的所有应用全部卸载掉&#xff0c…

【C语言】C语言中a<b<c与a<bb<c的区别你注意到了嘛?

问题导入   今天碰到了一个if(a<b<c)逻辑一直成立&#xff0c;无论a,b,c三者的值如何&#xff0c;输出结果一直一样。&#x1f605;&#x1f605;&#x1f605;大家可以看看下图&#xff1a; 逻辑运算测试1 不过讲实话&#xff0c;在实际写代码过成中&#xff0c;小编一…

【数据结构基础】树 - 哈夫曼树(Huffman Tree)

哈夫曼又称最优二叉树, 是一种带权路径长度最短的二叉树。(注意带权路径WPL是指叶子节点&#xff0c;很多网上的文章有误导) 哈夫曼树相关名词先看一棵哈夫曼树: (哈夫曼树推理是通过叶子节点&#xff0c;所以理解的时候需要忽略非叶子节点&#xff0c;很多文章在这点上有误导)…

CHAPTER 14 Swarm

Swarm14.1 Swarm简介14.2 Swarm vs K8s14.3 基本概念1. Swarm集群2.节点3.服务4.任务5.服务的外部访问14.4 使用Swarm1.创建集群(init)2.查看集群信息(info)3.加入集群(join)4.使用集群服务(service)1. 创建服务(service create)2. 查看服务(service ls)3. 扩缩服务(service sc…

力扣:至少是其他数字两倍的最大数(详解)

前言&#xff1a;本期是关于至少是其他数字两倍的最大数的详解&#xff0c;内容包括四大模块&#xff1a;题目&#xff0c;代码实现&#xff0c;大致思路&#xff0c;代码解读&#xff0c;今天你c了吗&#xff1f; 题目&#xff1a; 给你一个整数数组 nums &#xff0c;其中总…

如何对企业网站进行优化?(网站怎样优化seo)

探析企业网站优化怎么做才有效果&#xff1f; 在互联网营销时代&#xff0c;搜索引擎一直是推广流量的重要途径&#xff0c;越来越多的企业已经涉足搜索引擎优化行业&#xff0c;众多企业做网站优化是为了网站提升企业知名度和流量&#xff0c;争取以更低成本做更高转化、更快…

公务机包机|公务飞行包机攻略解答

公务机是一种在行政事务和商业活动中用作交通工具的飞行&#xff0c;也被称为行政机或商用飞机。公务机包机程序简单&#xff0c;不仅可以享受不一致的尊崇服务&#xff0c;而且可以避免巨额投资和日常管理的繁琐事务。    公务机是指在行政事务和商业活动中用作交通工具的飞…

最重要的定理:隐函数定理

多元函数变限积分求导问题

整理网上拷贝的文档格式-去掉代码前的序号

1、整理换行 第一步&#xff0c;将所有的纯换行的地方替换为空&#xff08;也就是删除他们&#xff09;&#xff0c;我这里是将选择题的各选项之间的换行替换为两个制表符&#xff08;两个Tab键&#xff09;&#xff1a; 执行这一步的时候注意将通配符的选项勾选上&#xff0c…

利用Python计算离散点构成曲线的曲率

目录一、实现原理1.1、计算点到直线的距离——海伦公式参考链接计算曲率就是为了求这段弧长对应的半径&#xff0c;也就是说&#xff0c;我们把曲线看成圆的弧长就行&#xff0c;那么问题就简单了。一、实现原理 1.1、计算点到直线的距离——海伦公式 如下图所示&#xff0c;…

【MyBatis】第四篇:浅聊resultType

前提 学生对象不会变如下&#xff1a; package com.xzd.domain;public class Student {Integer sid;String sname;int sage;String ssex;public Student() {}public Student(Integer sid, String sname, int sage, String ssex) {this.sid sid;this.sname sname;this.sage …

如何把图片转换成word文档?说一个转换途径

我们时常需要将图片上的文字资料归纳整理下来&#xff0c;转成Word文档的形式会方便很多&#xff0c;下面给大家介绍一下如何把图片转换成word文档&#xff0c;有多种方式&#xff0c;咱们自由选择。方式一、直接添加图片转换成Word这种方式非常简单&#xff0c;我们打开Word或…

校园IP网络广播系统方案

北京恒星科通发布于2023-2-2 一、校园IP网络广播系统概述 校园I P网络广播系统&#xff0c;是构建在当前广泛使用的TCP/IP通讯网络基础上的新一代交互式公共广播系统。系统采用分布式服务器架构&#xff0c;容量可以根据需要不断扩展&#xff0c;可以在局域网或者广域网内运行…

21-死锁的解除及银行家算法

预防死锁 不允许死锁的发生 静态策略:预防思索 破坏互斥条件 如果能把互斥使用的资源改造为允许共享使用,则系统不会进入死锁状态,比如SPOOLing技术,操作系统可以采用SPOOLing技术把独占设备在逻辑上改造为共享设备。 使用了SPOOLing技术后,在各进程看来,自己对打印机资源的…

2023年java面试常考知识点(12题)

一. 接⼝与抽象类区别 1、⼀个类声明可否既是abstract的,⼜是final的? 不能,这两个修式符⽭盾&#xff08;abstract就是要被继承&#xff09; 2、抽象类不⼀定包含抽象⽅法 3、有抽象⽅法,则⼀定是抽象类 4、抽象类不能被实例化&#xff0c;⼀般⽤作基类使⽤&#xff1b; a. 类…

数学建模比赛超全整理【数学建模有哪些比赛?】【全网最全数模整理】

文章目录一.全国大学生数学建模竞赛二.美国大学生数学建模竞赛三、中国研究生数学建模竞赛四、认证杯&#xff08;小美赛&#xff09;五、华数杯&#xff08;国内赛和国际赛&#xff09;六.MathorCup高校数学建模挑战赛七.全国大学生电工数学建模竞赛八.深圳杯九.数维杯大学生数…

用vue3+vant4开发的简单小众电商购物项目模板(纯前端)

简单录制如下 主要练习下界面和交互&#xff0c;顺带简单了解下 vue3 语法。 简单截图如下 首页 首页-猜你喜欢 分类 购物车 个人页面 部分文件代码 底部导航文件 <template><div class"nav" id"myNav"><divclass"nav-item-box"v…