您好,登錄后才能下訂單哦!
信號(hào)是一種軟中斷,是一種處理異步事件的方法。一般來說,操作系統(tǒng)都支持許多信號(hào)。尤其是UNIX,比較重要應(yīng)用程序一般都會(huì)處理信號(hào)。
UNIX定義了許多信號(hào),比如SIGINT表示中斷字符信號(hào),也就是Ctrl+C的信號(hào),SIGBUS表示硬件故障的信號(hào);SIGCHLD表示子進(jìn)程狀態(tài)改變信號(hào);SIGKILL表示終止程序運(yùn)行的信號(hào),等等。信號(hào)量編程是UNIX下非常重要的一種技術(shù)。
Unix信號(hào)量也可以在文件/usr/include/sys/signal.h中查看
#define SIGHUP 進(jìn)程由於控制終端死去或者控制終端發(fā)出起命令
#define SIGINT 鍵盤中斷所產(chǎn)生的信號(hào)
#define SIGQUIT 鍵盤終止
#define SIGILL 非法的指令
#define SIGTRAP 進(jìn)程遇到一個(gè)追蹤(trace)或者是一個(gè)中斷嵌套
#define SIGABRT 由abort系統(tǒng)調(diào)用所產(chǎn)生的中斷信號(hào)
#define SIGIOT 類似於SIGABRT
#define SIGBUS 進(jìn)程試圖使用不合理的記憶體
#define SIGFPE 浮點(diǎn)異常
#define SIGKILL KILL
#define SIGUSR1 用戶自定義
#define SIGSEGV 段錯(cuò)誤
#define SIGUSR2 用戶自定義
#define SIGPIPE 管道操作時(shí)沒有讀只寫
#define SIGALRM 由alarm系統(tǒng)調(diào)用產(chǎn)生的timer時(shí)鐘信號(hào)
#define SIGTERM 收到終端信號(hào)的進(jìn)程
#define SIGSTKFLT 堆疊錯(cuò)誤
#define SIGCHLD 子進(jìn)程向父進(jìn)程發(fā)出的子進(jìn)程已經(jīng)stop或者終止的信號(hào)
#define SIGCONT 繼續(xù)運(yùn)行的信號(hào)
#define SIGSTOP stop
#define SIGTSTP 鍵盤所產(chǎn)生的stop信號(hào)
#define SIGTTIN 當(dāng)運(yùn)行在後狀態(tài)時(shí)卻需要讀取stdin的資料
#define SIGTTOU 當(dāng)運(yùn)行在後狀態(tài)時(shí)卻需要寫向stdout
#define SIGURG socket的緊急情況
#define SIGXCPU 進(jìn)程超額使用CPU分配的時(shí)間
#define SIGXFSZ 進(jìn)程使用了超出系統(tǒng)規(guī)定文件長(zhǎng)度的文件
#define SIGVTALRM 內(nèi)部的alarm時(shí)鐘過期
#define SIGPROF 在一個(gè)程式段中描繪時(shí)鐘集過期
#define SIGWINCH 終端視窗的改變
#define SIGIO 非同步IO
#define SIGPOLL SIGIO pollable事件發(fā)生
通過結(jié)合trap命令使用:trap <command-list> <signal-list>
以上這些Unix信號(hào)量的知識(shí),希望大家能夠記住,方便以后我們的使用。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。