首頁 >後端開發 >C++ >不會在按下Ctrl+Z時暫停的C程序

不會在按下Ctrl+Z時暫停的C程序

WBOY
WBOY轉載
2023-09-19 18:13:021402瀏覽

不會在按下Ctrl+Z時暫停的C程序

在程式設計中,當程式發生故障並在終端編譯器中以異常方式運行時,程式設計師有權利明確停止程式的運作。要明確停止程序,使用者必須知道需要按下的正確鍵盤快捷鍵。

為了終止程式碼區塊的執行,有兩種類型的鍵盤快速鍵被使用。

  • 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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除