Linux学习之系统编程篇:与信号集有关的函数
生活随笔
收集整理的這篇文章主要介紹了
Linux学习之系统编程篇:与信号集有关的函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、自定義信號集
(1)類型:sigset_t (本質是位圖)
(2)設置自定義信號集方法:
(3)設置自定義信號集函數:5 個
int sigemptyset(sigset_t *set); // 將自定義信號集置空(置 0)// 不阻塞任何信號 int sigfillset(sigset_t *set); // 將自定義信號集置 1 // 阻塞所有信號 int sigaddset(sigset_t *set, int signum); // 將某個信號在自定義信號集置 1 int sigdelset(sigset_t *set, int signum); // 將某個信號在自定義信號集置 0 int sigismember(const sigset_t *set, int signum); // 判斷某個信號在集合內是否為 1二、通過“自定義信號集”設置“阻塞信號集”的函數
通過“自定義信號集”設置“阻塞信號集”的函數:sigprocmask
(1)函數原型:
(2)參數:
how :如何映射的,有三種
1)SIG_BLOCK :阻塞 ,自定義信號集和阻塞信號集 兩個位圖取或 。即:某個信號被其中任意一個集合阻塞,最終結果就是阻塞。
2)SIG_UNBLOCK :解除阻塞 ,先查看自定義信號集,記錄設置為 1 的位置, 再查看阻塞信號集,對應位置,若是 1,改為 0,若是 0,則不動。
3)SIG_SETMASK :同步 ,自定義信號集覆蓋阻塞信號集。
sigset_t *set: 傳入參數,傳入自定義信號集的地址。
sigset_t *oldest:傳出參數,設置之前阻塞信號集狀態 不關心,傳 NULL。
三、讀取當前進程未決信號集
讀取當前進程未決信號集:sigpending 函數。
(1)函數原型:
注意:為傳出參數,而 set 是位圖,無法直接讀取,所以常配合 sigismember 使用。
(2)練習:打印當前進程的未決信號集
總結
以上是生活随笔為你收集整理的Linux学习之系统编程篇:与信号集有关的函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流水线可靠数据传输协议
- 下一篇: Linux学习之系统编程篇:与信号捕捉有