ในการเขียนโปรแกรมเมื่อโปรแกรมทำงานผิดปกติและทำงานผิดปกติในเทอร์มินัลคอมไพเลอร์ โปรแกรมเมอร์มีอำนาจในการหยุดการทำงานของโปรแกรมอย่างชัดเจน ในการหยุดโปรแกรมอย่างชัดเจน ผู้ใช้ต้องทราบแป้นพิมพ์ลัดที่ถูกต้องซึ่งจำเป็นต้องกด
ในการยุติการเรียกใช้บล็อกโค้ด มีการใช้แป้นพิมพ์ลัดสองประเภท
-
Ctrl+c − ใช้เพื่อหยุดการทำงานของโปรแกรม ใช้เวลาสักครู่ในการดำเนินการ i/o ให้เสร็จ จากนั้นจึงหยุดการดำเนินการชั่วคราว มันส่ง SIGINT ส่งสัญญาณไปยังกระบวนการที่ถูกยกเลิก ในบางภาษา มีวิธีจัดการกับ SIGINT . นี้ เช่นฟังก์ชั่นสัญญาณใน C.
-
Ctrl+z - ใช้เพื่อหยุดการทำงานของโปรแกรม งานทั้งหมดที่เกี่ยวข้องกับกระบวนการจะถูกปิดและการดำเนินการถูกระงับ มันส่ง SINTSTP ส่งสัญญาณไปยังกระบวนการที่ยุติโปรแกรมแม้ว่าการใช้งานจะเหมือนกัน แต่สัญญาณนี้มีประสิทธิภาพมากกว่าเมื่อเทียบกับตัวอื่น นอกจากนี้ยังสามารถจัดการได้
ในที่นี้ เราจะเขียนโค้ดที่จะสามารถอยู่เหนือการเรียก ctrl+z ได้ และแทนที่จะถูกระงับ โปรแกรมจะพิมพ์ว่า “ctrl+z ไม่สามารถระงับรหัสนี้ ”.
ตามที่กล่าวไว้ข้างต้น ctrl+z สามารถจัดการการโทรในภาษาการเขียนโปรแกรม C เมื่อ SINTSTP สัญญาณถูกเรียกใช้เพื่อสิ้นสุดกระบวนการของโปรแกรม เราจะกำหนดใหม่ว่าสัญญาณนี้ทำอะไรเพื่อที่ฉันจะไม่ยุติรหัสและพิมพ์บรรทัดเมื่อใช้
วิธี Signal() ใช้สำหรับจัดการกับสิ่งนี้
ตัวอย่าง
#include <stdio.h> #include <signal.h> void signalhandler(int sig_num){ signal(SIGTSTP, signalhandler); printf("Cannot execute Ctrl+Z\n"); } int main(){ int a = 1; signal(SIGTSTP, signalhandler); while(a){ } return 0; }
ผลลัพธ์
// an infinite loop