信号通讯
一。核心理論
1.信號處理流程
內核->選擇信號->發送信號->進程B->處理信號
2.信號類型
Linux系統支持的所有信號均定義在/usr/include/asm/signal.h,其中常見的信號時
SIGKLL: 殺死進程
SIGSTOP:暫停進程
SIGCHLD:子進程停止或結束時用來通知父進程
二。函數學習
1.發送信號
函數名: ? kill
函數原型: ? intkill(pid_t pid,int sig)
函數功能: ? 向進程發送信號
所屬頭文件: <sys/types.h><signal.h>
返回值: 成功時:返回0
失敗時:返回-1
參數說明:? pid : pid > 0 ,pid參數指向接受信號的進程
sig : 指明要發送的信號
2.處理信號
函數名: ?signal
函數原型: ?typedef void(*sighandler_t)(int)
sighandler_t signal(int signum,sighandler_t handler)
函數功能: 設置信號的處理方式
所屬頭文件: <signal.h>
返回值: ? 成功時 :返回處理函數的指針
失敗時 :返回SIG_ERR
參數說明:? signum : 要處理的信號
handler: 對應信號的處理方式
SIG_IGN:忽視這個信號(不處理)
SIG_DFL:交給內核來處理
用戶自定義方式:交給用戶自定義的方式來處理
3.用戶自定義方式
1.發送信號 kill -n SIGINT pid?
pid 是指向接受信號的進程號。(ps aux 查看一下這個命令)
2.kill 發送函數
./aprocee pid?
pid 是指向接受信號的進程號。(ps aux 查看一下這個命令)
轉載于:https://www.cnblogs.com/lvxiaoning/p/4947584.html
總結
- 上一篇: Jersey Restful Appli
- 下一篇: POJ 3469 Dual Core C