美文网首页
C++ signal 在命令行接收 Ctrl+C 终止程序

C++ signal 在命令行接收 Ctrl+C 终止程序

作者: 谢小帅 | 来源:发表于2019-05-27 09:02 被阅读0次

signal 函数介绍

#include <iostream>
#include <csignal>  // 引入头文件

using namespace std;

static volatile int keepRunning = 1;

void sig_handler(int sig) {
    if (sig == SIGINT) {
        keepRunning = 0;
    }
}

int main() {

    signal(SIGINT, sig_handler); // SIGINT 信号由 InterruptKey 产生,通常是 CTRL +C 或者 DELETE

    while (keepRunning) {
        cout << "hahah" << endl;
    }

    cout << "Terminated by Ctrl+C signal." << endl;
}

命令行执行这个死循环程序,接收 Ctrl + C 停止。
可以作为 OpenCV waitKey 替代品。

注意:如果是多线程程序,signal(SIGINT, sig_handler) 需要写在想要终止的那个线程里,只写在 main 函数不行。

相关文章

  • C++ signal 在命令行接收 Ctrl+C 终止程序

    signal 函数介绍 命令行执行这个死循环程序,接收 Ctrl + C 停止。可以作为 OpenCV waitK...

  • signal信号

    [C] signal信号 我们应该遇到过这样的几个场景 程序在运行过程中需要终止ctrl+c,但是程序正在读写数据...

  • 系统信号处理

    为什么要有信号处理 程序在执行过程中可能会被系统关闭,譬如在命令行执行时用户按下CTRL+C终止执行,或者在进程管...

  • core dump 分析与实践

    什么是 core dump ? 进程接收到某些信号(signal)后, 异常终止,并记录当前内存等状态的镜像文件,...

  • 一些记不住的命令行 2018-09-12

    cd .. 返回上级目录 Ctrl+c 终止命令行 node.js中新建文件为: cd.>文件名 gitbush中...

  • Linux学习笔记

    一、基本概念 1)常用快捷键 [Tab]: 补全命令参数、命令、目录。[Ctrl+c]:强制终止当前程序。[Ct...

  • Linux常用命令

    常用快捷键 Tab: 命令及路径补全功能。 Ctrl+c:强行终止当前程序。 Ctrl+d:退出终端。 exit:...

  • Linux 基础入门(新版)”实验报告

    Linux基本概念及操作实验报告 Tab 补全命令、补全目录、补全命令参数 Ctrl+c 强行终止当前程序 Ctr...

  • go并发应用 - 写一个任务调度小程序

    程序可以在分配的时间内完成工作,正常终止; 程序没有及时完成工作,“自杀”; 接收到操作系统发送的中断事件,程序立...

  • python 微信扫码登录故障解决

    最近用 wxpy 这个模块实现微信功能,程序运行了一段时间,突然有一天扫码后,迟迟不登录,ctrl+c 终止程序后...

网友评论

      本文标题:C++ signal 在命令行接收 Ctrl+C 终止程序

      本文链接:https://www.haomeiwen.com/subject/dpqctctx.html