Signal 函式詳細介紹

2021-08-20 20:30:57 字數 2800 閱讀 7407

#include 

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

#include 

#include

int main(int argc, char *argv)

#include 

#include

int main(int argc, char *argv)

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);

#include 

#include

typedef

void (*signal_handler)(int);

void signal_handler_fun(int signum)

int main(int argc, char *argv)

catch

signal

2catch

signal

2catch

signal

2catch

signal

2=退出

description

sigabrt

由呼叫abort函式產生,程序非正常退出

sigalrm

用alarm函式設定的timer超時或setitimer函式設定的interval timer超時

sigbus

某種特定的硬體異常,通常由記憶體訪問引起

sigcancel

由solaris thread library內部使用,通常不會使用

sigchld

程序terminate或stop的時候,sigchld會傳送給它的父程序。預設情況下該signal會被忽略

sigcont

當被stop的程序恢復執行的時候,自動傳送

sigemt

和實現相關的硬體異常

sigfpe

數學相關的異常,如被0除,浮點溢位,等等

sigfreeze

solaris專用,hiberate或者suspended時候傳送

sighup

傳送給具有terminal的controlling process,當terminal 被disconnect時候傳送

sigill

非法指令異常

siginfo

bsd signal。由status key產生,通常是ctrl+t。傳送給所有foreground group的程序

sigint

由interrupt key產生,通常是ctrl+c或者delete。傳送給所有foreground group的程序

sigio

非同步io事件

sigiot

實現相關的硬體異常,一般對應sigabrt

sigkill

無法處理和忽略。中止某個程序

siglwp

由solaris thread libray內部使用

sigpipe

在reader中止之後寫pipe的時候傳送

sigpoll

當某個事件傳送給pollable device的時候傳送

sigprof

setitimer指定的profiling interval timer所產生

sigpwr

和系統相關。和ups相關。

sigquit

輸入quit key的時候(ctrl+\)傳送給所有foreground group的程序

sigsegv

非法記憶體訪問

sigstkflt

linux專用,數學協處理器的棧異常

sigstop

中止程序。無法處理和忽略。

sigsys

非法系統呼叫

sigterm

請求中止程序,kill命令預設傳送

sigthaw

solaris專用,從suspend恢復時候傳送

sigtrap

實現相關的硬體異常。一般是除錯異常

sigtstp

suspend key,一般是ctrl+z。傳送給所有foreground group的程序

sigttin

當background group的程序嘗試讀取terminal的時候傳送

sigttou

當background group的程序嘗試寫terminal的時候傳送

sigurg

當out-of-band data接收的時候可能傳送

sigusr1

使用者自定義signal 1

sigusr2

使用者自定義signal 2

sigvtalrm

setitimer函式設定的virtual interval timer超時的時候

sigwaiting

solaris thread library內部實現專用

sigwinch

當terminal的視窗大小改變的時候,傳送給foreground group的所有程序

sigxcpu

當cpu時間限制超時的時候

sigxfsz

程序超過檔案大小限制

sigxres

solaris專用,程序超過資源限制的時候發

Signal 函式詳細介紹 Linux函式

include 提供型別pid t的定義 include pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個已經變成殭屍的子程序,wait就會收集這個子程序的資訊,並把它徹底銷毀後返回 如果沒...

Linux函式 Signal 函式詳細介紹

include typedef void sighandler t int sighandler t signal int signum,sighandler t handler include include int main int argc,char argv include include ...

Linux函式 Signal 函式詳細介紹

include typedef void sighandler t int sighandler t signal int signum,sighandler t handler include include int main int argc,char argv include include ...