如何在 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; // Define the function to be called when ctrl-c (SIGINT) is sent to process void signal_callback_handler(int signum) { cout << "Caught signal " << signum << endl; // Terminate program exit(signum); } int main(){ // Register signal and signal handler 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 $
广告