在程式設計中,當程式發生故障並在終端編譯器中以異常方式運行時,程式設計師有權利明確停止程式的運作。要明確停止程序,使用者必須知道需要按下的正確鍵盤快捷鍵。
為了終止程式碼區塊的執行,有兩種類型的鍵盤快速鍵被使用。
Ctrl c - 用於停止程式的執行,它需要一些時間來完成輸入/輸出操作,然後暫停執行。它向進程發送一個SIGINT訊號,進程將被終止。在某些語言中,可以透過類似C語言中的訊號函數來處理這個SIGINT。
Ctrl z - 用於停止程式的執行,與進程相關的所有任務都被關閉,執行被暫停。它會向行程發送一個SINTSTP訊號,終止程式的執行。儘管實現方式相同,但這個訊號比其他訊號更強大。這也可以被處理。
在這裡,我們將寫一個程式碼,可以繞過ctrl z的呼叫。而不是被暫停,程式將列印出「ctrl z不能暫停此程式碼」。
如上所述,C程式語言可以處理ctrl z的呼叫。當SINTSTP訊號被呼叫以結束程序的進程時,我們將重新定義這個訊號的作用,以便在使用時不終止程式碼並列印一行。
signal()方法用來處理這種類型的事情。
示範
#include <stdio.h> #include <signal.h> void signalhandler(int sig_num){ signal(SIGTSTP, signalhandler); printf("Cannot execute Ctrl+Z</p><p>"); } int main(){ int a = 1; signal(SIGTSTP, signalhandler); while(a){ } return 0; }
// an infinite loop
以上是不會在按下Ctrl+Z時暫停的C程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!