麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Linux 進程通信-信號的使用

2019-11-11 05:41:03
字體:
來源:轉載
供稿:網友

信號概念 信號(signal)是linux進程間通信的一種機制,全稱為軟中斷信號,也被稱為軟中斷。信號本質上是在軟件層次上 對硬件中斷機制的一種模擬。

信號由內核管理

產生的方式: 可以由內核自身產生,比如出現 硬件錯誤、內存讀取錯誤,分母為0的除法等,內核需要通知相應進程。 也可以由其他進程產生并發送給內核,再由內核傳遞給目標進程。

什么信號不能捕捉也不能忽略? SIGKILL(終止進程) SIGSTOP (暫停進程)

kill -l // 查看系統支持的所有的信號

發送信號

$ kill -signal pid $ kill -9 1001 // 強制殺死1001進程

信號處理機制 可以用函數signal注冊一個信號捕捉函數

#include<signal.h>typedefvoid(*sighandler_t)(int);//函數指針sighandler_tsignal(intsignum,sighandler_thandler);

signal 調用成功,返回處理函數的地址,否則返回SIG_ERR

#include<signal.h>#include<stdio.h>#include<unistd.h>void ouch(int sig){ 進程的四種狀態 RSTZ T:暫停

sigaction信號處理機制

3.1 信號情況處理分析 注冊信號處理函數 當注冊信號函數正在處理時,來了同類信號排隊執行 當注冊信號函數正在處理時,捕捉到其他類信號,打斷然后先執行其他類信號, 如果在發生信號時,程序正阻塞在某個系統調用,例如調用 read()函數,則在處理完畢信號后,接著從阻塞的系統返回。如 果不指定該參數,中斷處理完畢之后,read函數讀取失敗。

#include<signal.h> int sigaction(int sig,const struct sigaction *act,struct sigaction *oact); 這個函數和signal 函數一樣,用于設置與sig關聯的動作。而oact不為空的話,它會保存原來的signal的位置。act則用于設置指定信號的動作。

#include<signal.h>#include<stdio.h>#include<unistd.h>void ouch(int sig){ printf("/nOUCH! - I got signal %d/n",sig);}int main(){ struct sigaction act; act.sa_handler=ouch; // 創建空的信號屏蔽字,即不屏蔽任何信息 sigemptyset(&set.sa_mask); // 使sigaction函數重置默認行為 act.sa_flags=SA_RESETHAND; sigaction(SIGIN,&act,0); while(1){ printf("Hello world:/n"); sleep(1); } return 0;}

3.2.sigaction信號處理注冊 函數原型: #include<signal.h> int sigaction(int signum,const struct siginfo_t *act ,struct sigaction *oldact)

struct sigaction{void(*sa_handler)(int); //老類型的信號處理函數指針void(*sa_sigaction)(int,siginfo_t*,void*);//新類型的信號處理函數指針sigset_tsa_mask; //將要被阻塞的信號集合intsa_flags; //信號處理方式掩碼(?SA_SIGINFO)void(*sa_restorer)(void); //保留,不要使用};

sa_handler 和 sa_sigaction 只能一個生效

sa_flags


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色网址进入 | 久草在线视频新 | 久久亚洲网 | chinesehd天美原创xxxx | 草久在线 | 美国黄色小视频 | 污版视频在线观看 | 欧美一级美片在线观看免费 | 欧美精品成人一区二区三区四区 | 成人免费一区二区三区在线观看 | 亚洲草逼视频 | 福利一区二区三区视频在线观看 | 日韩视频二区 | 欧美成人精品欧美一级乱黄 | 天天夜夜操操 | 偿还的影视高清在线观看 | 午夜精品一区二区三区免费 | 国产毛片视频 | 久久国产成人精品国产成人亚洲 | 羞羞视频免费网站日本动漫 | 羞羞视频免费视频欧美 | 亚洲一区在线免费视频 | 久久久久久久久国产 | av电影免费观看 | 亚洲码无人客一区二区三区 | 51色视频| 免费99热在线观看 | 日本a v免费观看 | 毛片在线免费观看视频 | 国产一级在线免费观看 | 国产亚洲精品一区二区三区 | 久久丝袜脚交足黄网站免费 | 国产成人77亚洲精品www | 久久综合一区二区 | 国产成人在线一区二区 | 久久草草影视免费网 | 久草中文网 | 美女视频大全网站免费 | 美女亚洲 | 国产在线久 | 久久精品久久精品国产大片 |