進程學習:進程間通信(傳統通信方式)3.信號

信號是一個異步通信(意思就是忽略程序執行的先後順序),大白話就是你別管我,我在呢,你該幹啥就幹啥,等到信號來時,我會蹦出來處理信號的;

常用到的信號函數:
kill:向指定進程發送一個信號;
raise:向當前進程發送一個信號;
alarm:給當前進程設置一個定時器;
pause:阻塞等待,直到當前進程收到一個信號爲止;
signal:捕獲一個信號,並執行用戶自定義的信號處理程序,或執行忽略(SIGIGN)操作,或執行默認(SIGDFL)操作;

signal函數原型:
void (* siganal(int signo, void (*func)(int) ))( int )
好複雜啊,有木有?下面來解析一下它,其實沒那麼難;

這裏寫圖片描述

下面來弄一個實例:看看信號程序傳參過程:
這裏寫圖片描述
圖中 SIGINT 是 Ctrl + c

不能被忽略和被捕捉的信號:SIGKILL SIGSTOP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章