如何在 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 $
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP