多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > Linux系統編程_10_信號

Linux系統編程_10_信號

來源:程序員人生   發布時間:2015-01-14 09:10:51 閱讀次數:2595次

    信號處理機制在linux編程中非常重要,它類似于單片機中的中斷系統;我們在編寫中斷函數時,需要設置中斷函數的地址,設置其相應的寄存器,以便于產生中斷事件時可以正確的跳到中斷函數去履行;

linux中信號和這個類似,1般的編程模型是定義中斷函數,然后把中斷函數注冊,使得進程收到特定的信號時,可以跳到信號處理函數去履行;


1.kill函數與raise函數

kill函數用來將信號發送給進程或進程組;

      ――int kill(pid_t pid,  int signo);

raise函數則允許進程向本身發送信號;

     ――int raise(int signo);

調用raise(signo);等價于kill(getpid(), signo);


不單單是kill函數  kill命令也能夠用來發送信號:

如:

kill -l ――列出所有信號

kill -s 10 pid ―― 10代表SIGUSR1 pid代表向哪一個進程發送USR1信號

也能夠這樣寫:kill -USR1 pid


回到kill函數;

注意:kill函數的第1個參數:



下面是1個使用kill函數的例子:

#include <stdio.h> #include <stdlib.h> #include <signal.h> pid_t pid; void fun(int a) { if(a == SIGABRT) printf("Have fun! "); if(a == SIGUSR1) { printf("Fuck! "); } } void send() { kill(pid, SIGUSR1);// Only send msg to progress or progress group! } int main() { int cnt = 0; signal(SIGABRT, fun); signal(SIGUSR1, fun); pid = fork(); if(pid == 0) { while(1) { printf("Child! "); sleep(1); } } while(1) { printf("Father! "); cnt++; if(cnt == 5) send(); sleep(1); } }


2. alarm函數和pause函數

alarm函數用來設定計時器,設定的某個時間超時時,會產生1個SIGALRM信號,如果不捕捉改信號,默許會終止調用該alarm函數的進程。

      ―― unsigned int alarm(unsigned int seconds);

pause函數使得調用進程掛起直到捕捉到1個信號

     ―― int pause(void);

實例:

#include <signal.h> #include <stdio.h> void fun(int id) { if(id == SIGUSR1) { printf("SIGUSR1 "); } if(id == SIGALRM) { printf("SIGALRM! "); } } int main() { signal(SIGUSR1, fun); signal(SIGALRM, fun); alarm(5); // if not catch, progress return; for(;;) pause(); return 0; }

3.信號集

1個可以包括多個信號的信號集,這個數據類型是sigset_t,同時,也有相應的信號集函數;



還有以下1些函數:








生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久中文精品 | 麻豆亚洲精品一区二区 | www一级毛片 | 精品久久久久不卡无毒 | 久久精品国产999久久久 | 日本18网站 | 中文字幕专区在线亚洲 | 欧美18videosex性欧美69 | 久久大| 中文字幕在线视频免费观看 | 中欧free性video巴西 | www.一区 | xart欧美一区在线播放 | 亚洲精品美女国产一区 | 亚洲成人福利在线 | 国产美女无遮挡免费视频网站 | 免费观看的男女羞羞视频 | 久操精品 | 欧美一级高清片欧美国产欧美 | 国产aⅴ自拍| 一区二区三区观看 | 一级欧美视频 | 国产福利精品在线观看 | 国产午夜毛片v一区二区三区 | 黑人和黑人激情一级毛片 | 操你综合 | 久久久亚洲精品国产 | 亚洲精品1区 | 国产成人精品视频一区二区不卡 | 亚洲精品亚洲人成毛片不卡 | www.黄色免费网站 | 国产小情侣激情小视频免费看 | 成人hd| 精品九九久久国内精品 | 五月天婷婷在线视频国产在线 | 亚洲精品第一页中文字幕 | 国产精品亚洲二区 | 日韩精品欧美精品中文精品 | 日本亚洲网站 | 免费乱码中文字幕网站 | 精品国产一区二区三区在线观看 |