Linux中的定時訊號機制

2021-09-21 23:53:45 字數 630 閱讀 9658

前段時間在做乙個專案的時候遇到了一點問題,做了乙個安全方面的東西,主要目的是為了實現一段程式在規定的時間內完成,如果在規定時間內不能夠完成相應的操作時,程式報警。

signal(sigalrm, signalfun); 

而後在程式中對時間進行了設定:

alarm(5); 

這樣就可以實現了再5秒後執行函式signalfun,如果再次過程中我們已經完成了程式,則可以用alarm(0);對剛剛我們設定的訊號進行消去,

#include 

#include 

#include 

void

signalfun() 

void

testfun() 

else

goto

loop; 

} int

main(

intargc, 

char

*ar**) 

在這個程式中如果你輸入的數均小於10,則會讓你重新輸入,直到3秒到了以後如果還沒成功輸入大於10的數,則程式呼叫signalfun函式,如果在3秒內成功的輸入了乙個大於10 的數,則會執行alarm(0);從而使定時訊號取消,程式正常執行。

Linux 信 號 機 制

前面介紹了訊號的基本概念,在這一節中,我們將介紹核心如何實現訊號機制。即核心如何向乙個程序傳送訊號 程序如何接收乙個訊號 程序怎樣控制自己對訊號的反應 核心在什麼時機處理和怎樣處理程序收到的訊號。還要介紹一下setjmp和longjmp在訊號中起到的作用。1 核心對訊號的基本處理方法 核心給乙個程序...

linux 訊號機制

本文旨在弄懂linux中的訊號工作原理 kill l 命令可以檢視linux下所有訊號 2.1 使用者在終端按下某些鍵時,終端驅動程式會傳送訊號給前台程序 例如ctrl c產生sigint訊號,ctrl 產生sigquit訊號,ctrl z產生sigtstp訊號 2.2 硬體異常產生訊號,這些條件由...

LINUX訊號機制

在電腦科學中,訊號是unix 類unix以及其他posix相容的作業系統中程序間通訊的一種有限制的方式。它是一種非同步的通知機制,用來提醒程序乙個事件已經發生。當乙個訊號傳送給乙個程序,作業系統中斷了程序正常的控制流程,此時,任何非原子操作都將被中斷。如果程序定義了訊號的處理函式,那麼它將被執行,否...