不會在按下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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

錯誤地列印了一個大文件?需要停止或暫停列印以節省墨水和紙張嗎?在許多情況下,您可能需要暫停Windows11裝置上正在進行的列印作業。如何在Windows11中暫停列印?在Windows11中,暫停列印會暫停列印作業,但並不會取消列印任務。這為用戶提供了更靈活的控制權。有三種方法可以實現這一點:使用工作列暫停列印使用Windows設定暫停列印使用控制面板列印現在,讓我們來詳細看看這些。 1]使用工作列列印右鍵點選工作列上的列印佇列通知。按一下開啟所有活動印表機選項。在這裡,右鍵列印作業並選擇全部暫停

給出以下是一個將羅馬數字轉換為十進制數字的C語言演算法:演算法步驟1-開始步驟2-在運行時讀取羅馬數字步驟3-長度:=strlen(roman)步驟4-對於i=0到長度-1 步驟4.1-switch(roman[i]) 步驟4.1.1-case'm': &nbs

字典序字串比較是指字串依照字典順序進行比較。例如,如果有兩個字串'apple'和'appeal',第一個字串將排在後面,因為前三個字元'app'是相同的。然後對於第一個字串,字元是'l',而在第二個字串中,第四個字元是'e'。由於'e'比'l'短,所以如果我們按照字典順序排列,它將排在前面。在安排之前,字串會按字典順序進行比較。在本文中,我們將看到使用C++進行按字典順序比較兩個字串的不同技術。在C++字串中使用compare()函數C++string物件有一個compare()

當我們在使用印表機列印文件的時候,有時候會發現印表機狀態已暫停,印不下去了,這時候怎麼恢復呢,其實只需要取消掉印表機暫停就可以了。印表機狀態已暫停怎麼恢復:1、先透過右下角角標開啟印表機設定。 2.開啟後,可以看到顯示「已暫停」3、這時候,我們點擊左上角的「印表機」4、如果「暫停列印」被勾選了,那麼再點擊一次取消勾選。 5.取消勾選後就能發現已暫停沒有了,可以繼續列印了。

連結列表使用動態記憶體分配,即它們相應地增長和收縮。它們被定義為節點的集合。這裡,節點有兩個部分,即資料和鏈路。資料、連結和鍊錶的表示如下-鍊錶的類型鍊錶有四種類型,如下:-單鍊錶/單鍊錶雙/雙向鍊錶循環單鍊錶循環雙鍊錶我們使用遞歸方法求鍊錶長度的邏輯是-intlength(node *temp){ if(temp==NULL) returnl; else{&n

rename函數將檔案或目錄從舊名稱變更為新名稱。此操作類似於移動操作。因此,我們也可以使用此rename函數來移動檔案。此函數存在於stdio.h庫頭檔中。 rename函數的語法如下:intrename(constchar*oldname,constchar*newname);rename()函數的函數它接受兩個參數。一個是oldname,一個是newname。這兩個參數都是指向常數字元的指針,用於定義檔案的舊名稱和新名稱。如果檔案重新命名成功,則傳回零;否則,傳回非零整數。在重新命名操作期間

雙曲函數是使用雙曲線而不是圓定義的,與普通三角函數相當。它從提供的弧度角傳回雙曲正弦函數中的比率參數。但要做相反的事,或者換句話說。如果我們想要根據雙曲正弦值計算角度,我們需要像雙曲反正弦運算一樣的反雙曲三角運算。本課程將示範如何使用C++中的雙曲反正弦(asinh)函數,並使用雙曲正弦值(以弧度為單位)計算角度。雙曲反正弦運算遵循下列公式-$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})},其中\:In\:是\:自然對數\:(log_e\:k)

映射是C++中的一種特殊類型的容器,其中每個元素都是一對兩個值,即鍵值和映射值。鍵值用於索引每個項目,映射值是與鍵關聯的值。無論映射值是否唯一,鍵始終是唯一的。要在C++中列印映射元素,我們必須使用迭代器。一組項目中的一個元素由迭代器物件指示。迭代器主要與陣列和其他類型的容器(例如向量)一起使用,並且它們具有一組特定的操作,可用於識別特定範圍內的特定元素。可以增加或減少迭代器來引用範圍或容器中存在的不同元素。迭代器指向範圍內特定元素的記憶體位置。使用迭代器在C++中列印地圖首先,我們先來看看如何定義
