程序對訊號的處理

2021-07-23 05:29:14 字數 535 閱讀 1816

《朱老師物聯網大講堂》學習筆記          

signal函式,處理訊號,

#include

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

#include #include #include typedef void (*sighandler_t)(int);

void func(int sig)

int main(void)

printf("before while(1)\n");

while(1);

printf("after while(1)\n");

return 0;

}

若不用signal函式,繫結func函式,則ctrl+c產生的訊號,進行預設處理,即關掉該程序,

使用signal函式繫結func函式後,捕獲到訊號後,將執行func函式,

76 訊號之程序對訊號的處理

預設處理 忽略處理 捕獲處理 預設和忽略都不用深究了,之前就都是預設忽略的 捕獲處理 註冊等錢程序在os中,某乙個訊號的處理方法,註冊乙個處理方法,指向的函式就是處理方法 用signal函式吃力sigint訊號 細節 signal的返回值是之前的處理方法 預設 忽略 捕獲 signal繫結乙個捕獲函...

Linux程序訊號 訊號處理

一 訊號相關概念 1.實際執行訊號的處理動作稱為訊號遞達 delivery 2.訊號從產生到遞達之間的狀態稱為訊號未決 pending 不一定會立即delivery 3.程序可以選擇阻塞 block 某個訊號。不會遞達 4.被阻塞的訊號產生時將保持在未決狀態,知道程序解除對此訊號 的阻塞,才會執行遞...

程序訊號掩碼處理

int sigprocmask int how,const sigset t restrict set,sigset t restrict oldset 乙個程序的訊號遮蔽字規定了當前阻塞而不能遞送給該程序的訊號集。sigprocmask 可以用來檢測或改變目前的訊號遮蔽字,其操作依引數how來決定...