国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Linux下C庫學習 - signal.h

2019-11-11 06:41:31
字體:
來源:轉載
供稿:網友

本系列只是為了研究C語言的頭文件,如果signal.h展開講感覺就有點跑題了,網上有許多對信號機制的解析,寫的都非常好,大家可以搜一些,這里就只對signal進行記錄,以便后續繼續學習。

信號 在命令行界面輸入kill -l就可以看到所以的信號以及對應的編號

列表中,編號為1 ~ 31的信號為傳統UNIX支持的信號,是不可靠信號(非實時的),編號為32 ~ 63的信號是后來擴充的,稱做可靠信號(實時信號)。不可靠信號和可靠信號的區別在于前者不支持排隊,可能會造成信號丟失,而后者不會。

細心的人可能會發現,上圖的編號沒有32和33,不知道是不是系統保留的信號,不過我在signum.h里面找到了這兩個定義

#define SIGLOST 32 /* Resource lost (Sun); server died (GNU). */#define _NSIG 33 /* Biggest signal number + 1. */

知道的大神,希望能在下方留言指點

signal函數 系統使用signal函數來注冊信號處理函數,聲明如下void (*signal(int signum, void (*handler)(int)))(int);

為了方便理解,POSIX進行了如下定義

typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);

可以看到signal函數有兩個參數

signum 指明了所要處理的信號類型,它可以取除了SIGKILL和SIGSTOP外的任何一種信號

handler 有三種選擇 SIG_IGN:忽略參數signum所指的信號。 SIG_DFL:恢復參數signum所指信號的處理方法為默認值。 sighandler_t類型的函數指針。

返回值是返回先前的信號處理函數指針,如果有錯誤則返回SIG_ERR(-1)。


上一篇:CGLib動態代理

下一篇:c#delegate原理瞎想

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂州市| 河曲县| 上饶市| 资阳市| 容城县| 遂川县| 新龙县| 隆化县| 乾安县| 连州市| 靖边县| 临沧市| 武城县| 沈丘县| 武隆县| 江门市| 丹东市| 右玉县| 蛟河市| 四子王旗| 正镶白旗| 钦州市| 巴林右旗| 柳河县| 磐安县| 察雅县| 福建省| 盐亭县| 兴国县| 普宁市| 青神县| 理塘县| 铜鼓县| 平定县| 河曲县| 南川市| 汉寿县| 井研县| 阜平县| 辽宁省| 鄯善县|