C語言 unix c 訊號基礎

2021-08-07 15:24:17 字數 1765 閱讀 3245

二、訊號的基礎

1、什麼是訊號

訊號就是」軟中斷「

軟中斷就是軟體模擬的中斷機制。

2、中斷是什麼

正常的執行流程,訊號處理程式是兩條執行路線,但是屬於同乙個程序

3、系統為我們提供了哪些訊號?

【kill -l】察看系統的中斷 64個訊號,32,33沒有

tarena@ubuntu

:~$ kill -l

1) sighup

2) sigint

3) sigquit

4) sigill

5) sigtrap

6) sigabrt

7) sigbus

8) sigfpe

9) sigkill

10) sigusr1

11) sigsegv

12) sigusr2

13) sigpipe

14) sigalrm

15) sigterm

16) sigstkflt

17) sigchld

18) sigcont

19) sigstop

20) sigtstp

21) sigttin

22) sigttou

23) sigurg

24) sigxcpu

25) sigxfsz

26) sigvtalrm

27) sigprof

28) sigwinch

29) sigio

30) sigpwr

31) sigsys

34) sigrtmin

35) sigrtmin+1

36) sigrtmin+2

37) sigrtmin+3

38) sigrtmin+4

39) sigrtmin+5

40) sigrtmin+6

41) sigrtmin+7

42) sigrtmin+8

43) sigrtmin+9

44) sigrtmin+10

45) sigrtmin+11

46) sigrtmin+12

47) sigrtmin+13

48) sigrtmin+14

49) sigrtmin+15

50) sigrtmax-14

51) sigrtmax-13

52) sigrtmax-12

53) sigrtmax-11

54) sigrtmax-10

55) sigrtmax-9

56) sigrtmax-8

57) sigrtmax-7

58) sigrtmax-6

59) sigrtmax-5

60) sigrtmax-4

61) sigrtmax-3

62) sigrtmax-2

63) sigrtmax-1

64) sigrtmax

ctrl+c:發的就是2號訊號

ctrl+\:是3號訊號

10.12號是使用者自定義

段錯誤就是11號產生的

4、訊號有名字和編號

5、訊號的產生到消失的過程

訊號的產生,訊號的遞達程序,訊號處理

6、訊號的未決狀態

就是訊號產生了,但是訊號還沒有被程序處理,這期間,訊號的狀態為未決狀態

程序可以對訊號進行阻塞(這時也處於未決狀態)(訊號到了但是不處理)

C語言 unix c 訊號阻塞和未決訊號

五 訊號阻塞和未決訊號 訊號集型別 sigset t 系統對sigset t型別進行了封裝 include int sigemptyset sigset t set 功能 初始化訊號集,不包含任何訊號 引數 set 指定要初始化的訊號集 返回值 0 成功 1 錯誤 int sigfillset si...

C語言 unix c 如何改變訊號的處理方式

程序對訊號的處理有預設動作。預設處理是終止程序。對訊號的處理有3種方式 預設處理,忽略訊號,使用者自定義 sig dfl 預設 sig ign 忽略 doit 這裡的名字自己定義,doit只是為了佔位 使用者自定義的訊號處理函式 子程序從父程序繼承訊號處理函式 bash的訊號繼承是預設處理 終止程序...

C語言 unix c 動態載入

動態載入 在程式中根據程式的需要,動態載入某個庫函式,這種行為稱為動態載入,系統為實現動態載入提供了一下函式 man 3 dlopen顯示幫助 標頭檔案 include void dlopen const char filename,int flag 引數 filename 制定了動態庫的檔案名字 ...