ในส่วนนี้เราจะมาดูวิธีการเขียนโปรแกรมในภาษา C ที่ไม่สามารถปิดได้ด้วยปุ่ม Ctrl + C
Ctrl + C สร้างการขัดจังหวะของแป้นพิมพ์ และจะหยุดการทำงานของกระบวนการปัจจุบัน ที่นี่เมื่อเราจะกดแป้น Ctrl + C มันจะพิมพ์ข้อความแล้วดำเนินการต่อไป ในการใช้ฟังก์ชันนี้ เราจะใช้เทคนิคการจัดการสัญญาณในภาษา C เมื่อกด Ctrl + C จะสร้างสัญญาณ SIGINT มีสัญญาณอื่นๆ และฟังก์ชันต่างๆ ในรายการต่อไปนี้
| สัญญาณ | คำอธิบาย |
|---|---|
| SIGABRT | แสดงว่ามีการยกเลิกอย่างผิดปกติ |
| SIGFPE | ระบุข้อยกเว้นจุดลอยตัว |
| SIGILL | ระบุคำสั่งที่ไม่ถูกต้อง |
| SIGINT | ระบุคำขอความสนใจแบบโต้ตอบที่ส่งไปยังโปรแกรม |
| SIGSEGV | บ่งชี้การเข้าถึงหน่วยความจำที่ไม่ถูกต้อง |
| SIGTERM | ระบุคำขอยกเลิกที่ส่งไปยังโปรแกรม |
ที่นี่เราจะใช้สัญญาณฟังก์ชันไลบรารี C มาตรฐาน () เพื่อจัดการกับสัญญาณเหล่านี้
โค้ดตัวอย่าง
#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 \n");
fflush(stdout);
}
main () {
signal(SIGINT, sigint_handler);
while(1) { //create infinite loop
}
} ผลลัพธ์
Cannot be stopped using Ctrl+C Cannot be stopped using Ctrl+C