<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 進(jìn)程間通信之:信號

進(jìn)程間通信之:信號

作者: 時(shí)間:2013-09-13 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/257126.htm

1.處理函數

(1)函數說(shuō)明。

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

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

(2)函數格式。

signal()函數的語(yǔ)法要點(diǎn)如表8.11所示。

表8.11 signal()函數語(yǔ)法要點(diǎn)

所需頭文件

#includesignal.h>

函數原型

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

函數傳入值

signum:指定信號代碼

handler:

SIG_IGN:忽略該信號

SIG_DFL:采用系統默認方式處理信號

自定義的信號處理函數指針

函數返回值

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

出錯:-1

這里需要對這個(gè)函數原型進(jìn)行說(shuō)明。這個(gè)函數原型有點(diǎn)復雜??上扔萌缦碌膖ypedef進(jìn)行替換說(shuō)明:

typedefvoidsign(int);

sign*signal(int,handler*);

可見(jiàn),首先該函數原型整體指向一個(gè)無(wú)返回值并且帶一個(gè)整型參數的函數指針,也就是信號的原始配置函數。接著(zhù)該原型又帶有兩個(gè)參數,其中的第二個(gè)參數可以是用戶(hù)自定義的信號處理函數的函數指針。

表8.12列舉了sigaction()的語(yǔ)法要點(diǎn)。

表8.12 sigaction()函數語(yǔ)法要點(diǎn)

所需頭文件

#includesignal.h>

函數原型

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

函數傳入值

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

act:指向結構sigaction的一個(gè)實(shí)例的指針,指定對特定信號的處理

oldact:保存原來(lái)對相應信號的處理

函數返回值

成功:0

出錯:-1

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

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

structsigaction

{

void(*sa_handler)(intsigno);

sigset_tsa_mask;

intsa_flags;

void(*sa_restore)(void);

}

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

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

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

表8.13 常見(jiàn)信號的含義及其默認操作

選項

含義

SA_NODEFERSA_NOMASK

當捕捉到此信號時(shí),在執行其信號捕捉函數時(shí),系統不會(huì )自動(dòng)屏蔽此信號

SA_NOCLDSTOP

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

SA_RESTART

令重啟的系統調用起作用

SA_ONESHOTSA_RESETHAND

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

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

模擬信號相關(guān)文章:什么是模擬信號


linux相關(guān)文章:linux教程


數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>