首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Linux 信號處理:signal() 註冊回調函數參數由內核傳遞

     編輯:程式設計疑難解答

代碼

signal(SIGPIPE, sig_pipe);
void sig_pipe(int signo) { ... }

機制

signo 參數由內核在信號觸發時自動傳遞給回調函數,用戶代碼無需主動傳參。內核上下文切換到信號處理函數時,將信號編號作為唯一參數壓棧調用。

注意

  • 信號處理函數應盡量簡短,只做標誌位設置或寫入管道通知主循環。
  • 避免在處理函數中調用非異步安全函數(如 malloc、printf、lock)。
  • 推薦使用 sigaction 替代 signal,語義更明確、可移植。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved