新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 進程間通信之:信號

進程間通信之:信號

作者: 時間:2013-09-13 來源:網(wǎng)絡 收藏

本文引用地址:http://butianyuan.cn/article/257126.htm

1.處理函數(shù)

(1)函數(shù)說明。

使用signal()函數(shù)處理時,只需要指出要處理的和處理函數(shù)即可。它主要是用于前32種非實時的處理,不支持信號傳遞信息,但是由于使用簡單、易于理解,因此也受到很多程序員的歡迎。

還支持一個更健壯、更新的信號處理函數(shù)sigaction(),推薦使用該函數(shù)。

(2)函數(shù)格式。

signal()函數(shù)的語法要點如表8.11所示。

表8.11 signal()函數(shù)語法要點

所需頭文件

#includesignal.h>

函數(shù)原型

void(*signal(intsignum,void(*handler)(int)))(int)

函數(shù)傳入值

signum:指定信號代碼

handler:

SIG_IGN:忽略該信號

SIG_DFL:采用系統(tǒng)默認方式處理信號

自定義的信號處理函數(shù)指針

函數(shù)返回值

成功:以前的信號處理配置

出錯:-1

這里需要對這個函數(shù)原型進行說明。這個函數(shù)原型有點復雜??上扔萌缦碌膖ypedef進行替換說明:

typedefvoidsign(int);

sign*signal(int,handler*);

可見,首先該函數(shù)原型整體指向一個無返回值并且?guī)б粋€整型參數(shù)的函數(shù)指針,也就是信號的原始配置函數(shù)。接著該原型又帶有兩個參數(shù),其中的第二個參數(shù)可以是用戶自定義的信號處理函數(shù)的函數(shù)指針。

表8.12列舉了sigaction()的語法要點。

表8.12 sigaction()函數(shù)語法要點

所需頭文件

#includesignal.h>

函數(shù)原型

intsigaction(intsignum,conststructsigaction*act,structsigaction*oldact)

函數(shù)傳入值

signum:信號代碼,可以為除SIGKILL及SIGSTOP外的任何一個特定有效的信號

act:指向結構sigaction的一個實例的指針,指定對特定信號的處理

oldact:保存原來對相應信號的處理

函數(shù)返回值

成功:0

出錯:-1

這里要說明的是sigaction()函數(shù)中第2個和第3個參數(shù)用到的sigaction結構。這是一個看似非常復雜的結構,希望讀者能夠慢慢閱讀此段內容。

首先給出了sigaction的定義,如下所示:

structsigaction

{

void(*sa_handler)(intsigno);

sigset_tsa_mask;

intsa_flags;

void(*sa_restore)(void);

}

sa_handler是一個函數(shù)指針,指定信號處理函數(shù),這里除可以是用戶自定義的處理函數(shù)外,還可以為SIG_DFL(采用缺省的處理方式)或SIG_IGN(忽略信號)。它的處理函數(shù)只有一個參數(shù),即信號值。

sa_mask是一個信號集,它可以指定在信號處理程序執(zhí)行過程中哪些信號應當被屏蔽,在調用信號捕獲函數(shù)之前,該信號集要加入到信號的信號屏蔽字中。

sa_flags中包含了許多標志位,是對信號進行處理的各個選擇項。它的常見可選值如表8.13所示。

表8.13 常見信號的含義及其默認操作

選項

含義

SA_NODEFERSA_NOMASK

當捕捉到此信號時,在執(zhí)行其信號捕捉函數(shù)時,系統(tǒng)不會自動屏蔽此信號

SA_NOCLDSTOP

進程忽略子進程產(chǎn)生的任何SIGSTOP、SIGTSTP、SIGTTIN和SIGTTOU信號

SA_RESTART

令重啟的系統(tǒng)調用起作用

SA_ONESHOTSA_RESETHAND

自定義信號只執(zhí)行一次,在執(zhí)行完畢后恢復信號的系統(tǒng)默認動作

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

模擬信號相關文章:什么是模擬信號


linux相關文章:linux教程


數(shù)字通信相關文章:數(shù)字通信原理


通信相關文章:通信原理




評論


相關推薦

技術專區(qū)

關閉