免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
signal函數(shù)詳細(xì)用法


信號是在軟件層次上對中斷的一種模擬,所以通常把它稱為是軟中斷


信號和中斷的區(qū)別

信號與中斷的相似點(diǎn):

(1)采用了相同的異步通信方式;

(2)當(dāng)檢測出有信號或中斷請求時,都暫停正在執(zhí)行的程序而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序;

(3)都在處理完畢后返回到原來的斷點(diǎn);

(4)對信號或中斷都可進(jìn)行屏蔽。

 信號與中斷的區(qū)別:

(1)中斷有優(yōu)先級,而信號沒有優(yōu)先級,所有的信號都是平等的;

(2)信號處理程序是在用戶態(tài)下運(yùn)行的,而中斷處理程序是在核心態(tài)下運(yùn)行;

(3)中斷響應(yīng)是及時的,而信號響應(yīng)通常都有較大的時間延遲。

SIGABRT  進(jìn)程停止運(yùn)行 6

SIGINT      終端中斷  2

SIGKILL     停止進(jìn)程(此信號不能被忽略或捕獲)

SIGQUIT   終端退出   3

 handler這個函數(shù)必須有一個int類型的參數(shù)(即接收到的信號代碼),它本身的類型是void,

handler也可以是下面兩個特殊值:

                              SIG_IGN     屏蔽該信號

                              SIG_DFL     恢復(fù)默認(rèn)行為

/*
       #include <signal.h>
       typedef void (*sighandler_t)(int);
       sighandler_t signal(int signum, sighandler_t handler);
*/

signal的函數(shù)原型,這里要注意它的返回值的類型,

它的參數(shù),第一個是信號的編號,也就是具體是哪一個信號,固定的寫法,沒什么好說的,

第二個參數(shù)handler,

1, 賦值SIG_IGN代表忽略信號,

2,或者你可以自己寫個信號處理函數(shù),傳給它地址,

3,如果你需要修改上面的設(shè)置,可以恢復(fù)默認(rèn)SIG_DFL ,

下面是一個自己寫的信號處理函數(shù),

說兩點(diǎn),

1,默認(rèn)自帶一個int類型參數(shù),//開始還在找,這個num哪里傳進(jìn)去的,

2,返回類型是void,

  1. void handler(int num)
  2. {
  3. printf("recv num:%d \n", num);
  4. if (num == SIGQUIT)
  5. {
  6. //exit(0);
  7. }
  8. }


下面是signal返回值的應(yīng)用場景,

  1. if (signal(SIGINT, handler) == SIG_ERR)
  2. {
  3. perror("signal err"); //errno
  4. exit(0);
  5. }
     這是它的返回  typedef void (*sighandler_t)(int);
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux信號機(jī)制之sigaction結(jié)構(gòu)體淺析,signal 函數(shù),信號捕捉 - Mr....
Linux信號之signal函數(shù)
linux內(nèi)核中的信號機(jī)制
函數(shù)指針與返回函數(shù)的指針 | 學(xué)步園
Linux | 一篇文章徹底搞定信號!
Linux 信號處理
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服