編寫一個在按下 Ctrl+C 時不會終止的 C 程式
在本節中,我們將學習如何編寫一個在按下 Ctrl + C 鍵時不會終止的 C 程式。
Ctrl + C 會生成鍵盤中斷,並停止當前程序的執行。在這裡,當我們按下 Ctrl + C 鍵時,它將列印一條訊息然後繼續執行。要使用此功能,我們將使用 C 中的訊號處理技術。按下 Ctrl + C 時會生成 SIGINT 訊號。以下列表中還有一些其他的訊號及其功能。
| 訊號 | 描述 |
|---|---|
| SIGABRT | 指示異常終止 |
| SIGFPE | 指示浮點異常 |
| SIGILL | 指示無效指令。 |
| SIGINT | 指示傳送到程式的互動式關注請求。 |
| SIGSEGV | 指示無效記憶體訪問。 |
| SIGTERM | 指示傳送到程式的終止請求。 |
這裡我們將使用標準 C 庫函式 signal() 來處理這些訊號。
示例程式碼
#include <stdio.h>
#include <signal.h>
void sigint_handler(int signum) { //Handler for SIGINT
//Reset handler to catch SIGINT next time.
signal(SIGINT, sigint_handler);
printf("Cannot be stopped using Ctrl+C
");
fflush(stdout);
}
main () {
signal(SIGINT, sigint_handler);
while(1) { //create infinite loop
}
}輸出
Cannot be stopped using Ctrl+C Cannot be stopped using Ctrl+C
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP