Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

เขียนโปรแกรม C ที่ไม่สิ้นสุดเมื่อกด Ctrl+C


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