如何在C ++中捕获Ctrl + C事件?

CTRL + C用于向当前正在执行的任务发送中断。在此程序中,我们将看到如何使用C ++捕获CTRL + C事件。

CTRL + C是C或C ++中的一个信号。因此我们可以通过信号捕获技术来捕获。对于此信号,代码为SIGINT(中断信号)。此处信号由signal()方法捕获。然后在收到信号后将一个回调地址传递给调用函数。

请查看程序以获得更好的主意。

示例

#include <unistd.h>

#include <iostream>

#include <cstdlib>

#include <signal.h>

using namespace std;

//定义将ctrl-c(SIGINT)发送到进程时要调用的函数

void signal_callback_handler(int signum) {

   cout << "Caught signal " << signum << endl;

   //终止程序

   exit(signum);

}

int main(){

   //注册信号和信号处理程序

   signal(SIGINT, signal_callback_handler);

   while(true){

      cout << "Program processing..." << endl;

      sleep(1);

   }

   return EXIT_SUCCESS;

}

输出结果

$ g++ test.cpp

$ ./a.out

Program processing...

Program processing...

Program processing...

Program processing...

Program processing...

Program processing...

^CCaught signal 2

$

以上是 如何在C ++中捕获Ctrl + C事件? 的全部内容, 来源链接: utcz.com/z/316621.html

回到顶部