ในส่วนนี้เราจะมาดูวิธีการเขียนโปรแกรมในภาษา 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