Linux應用開發之訊號集函式

2021-09-26 01:52:02 字數 714 閱讀 7396

訊號是程序間通訊的一種重要的方法,可以通過命令ls -l 來檢視系統都有哪些訊號。

下面是一些訊號處理函式

int sigemptyset(sigset_t *set) //判斷定義的訊號是否為空

int sigfillset(sigset_t *set)//set指向的訊號集中將包含linux支援的訊號

int sigaddset(sigset_t *set, int signo)//把訊號新增到定義的訊號集函式中

int sigdelset(sigset_t *set, int signo)//從訊號集函式中刪除指定的訊號

int sigismember(const sigset_t *set, int signo)//判斷某個訊號是否是訊號集函式

int sigprocmask(int how,sigset_t *sig,sigset_t *oset)

how引數:決定對某種訊號的處理方法 sig_block , sig_unbolock , sig_setmask

*set引數:想要處理的某個訊號,如果為null則忽略how的值。

*oset引數:用來存放舊的訊號如果不關係可以為null

int sigpending(sigset_t*set);//讀取當前程序中的未決訊號集通過*set引數傳出。

以上是訊號中會用到的函式,下一節我會用這幾個函式來寫乙個例子來加深大家對這些函式的理解

linux訊號通訊 訊號集函式組

訊號處理的方法主要有兩種,一種是使用signal 函式,另一種是使用訊號集函式組。例項 include include include 自定義的訊號處理函式 void my func int sign no if sign no sigquit int main 將相應的訊號加入訊號集 if sig...

訊號集函式

訊號集處理函式 清空訊號集 int sigempty sigset t set 填充訊號集 int sigfillset sigset t set 新增某個訊號到訊號集 int sigaddset sigset t set,int signum 從集合中刪除某個訊號 int sigdelset si...

Linux訊號集相關函式操作

在linux的程序中可以接收到各種的訊號,並且如果你不對訊號進行處理,linux中的程序就會採用預設的處理方式處理,比如ctrl c的訊號,程序對它的處理就是終止程序的執行。在linux中,我們也可以在程序中遮蔽掉某些訊號,使程序不去處理這些訊號,但其中的sigkill和sigstop是不能被阻塞的...