|
kcpmezzzbei64011277326.gif (60.41 KB, 下載次數(shù): 0)
下載附件
保存到相冊
kcpmezzzbei64011277326.gif
2024-8-31 11:41 上傳
1 t5 I0 q% a; g* o% `( b點(diǎn)擊上方藍(lán)色字體,關(guān)注我們8 _" d+ _; j c! k7 H" Q# z: @3 X
信號是一種軟件中斷,用于通知進(jìn)程發(fā)生了某種異步事件。信號可以由用戶、其他進(jìn)程或操作系統(tǒng)內(nèi)核產(chǎn)生。進(jìn)程可以選擇捕獲并處理這些信號,或者忽略它們,讓系統(tǒng)執(zhí)行默認(rèn)操作。
* `( g' I: f+ w% E$ b0 a- |5 [. B, H# [4 H. x4 w% q5 T4 A
wjm2phrqoor64011277426.png (76.48 KB, 下載次數(shù): 0)
下載附件
保存到相冊
wjm2phrqoor64011277426.png
2024-8-31 11:41 上傳
8 Z6 z; E! [ h" G& |
/ o5 U, }1 H, q不可靠信號(非實(shí)時信號):編號為 1~31 的信號。它們的行為可能因?qū)崿F(xiàn)而異,特別是在信號被阻塞或忽略的情況下。如果多個相同的不可靠信號在短時間內(nèi)連續(xù)到達(dá),它們可能會合并成一個信號。可靠信號(實(shí)時信號):編號為 34~64 的信號。它們的行為在所有 POSIX 兼容的系統(tǒng)上都是相同的?煽啃盘柌粫喜,即使它們在短時間內(nèi)連續(xù)到達(dá)?煽啃盘栔С峙抨(duì),這意味著如果一個可靠信號被阻塞,它將被存儲在隊(duì)列中,直到信號處理程序準(zhǔn)備就緒。! S7 K& ]/ B" v. z- L Z
* r+ Y: i9 k" |5 c
常見信號的用途和系統(tǒng)默認(rèn)操作如下:
8 @ m4 S1 V/ P8 x' |9 A' l+ r0 V8 ~8 s3 K
qpgunemfuhg64011277527.png (436.59 KB, 下載次數(shù): 0)
下載附件
保存到相冊
qpgunemfuhg64011277527.png
2024-8-31 11:41 上傳
- k' j1 [0 D0 `$ y
- @5 w. |, _" [
SIGINT (2), s2 v p$ g# V! ]* Y
觸發(fā)方式:當(dāng)用戶在終端按下中斷字符(通常是CTRL+C)。默認(rèn)操作:終止進(jìn)程。描述:用于中斷正在運(yùn)行的前臺進(jìn)程,是常用的終止命令。
% N, v9 S; R+ w: p$ J/ f( n+ A: @3 v& w
& x3 ^- R0 |2 V8 r$ ]. {
SIGQUIT (3)
* r9 t+ t0 N+ E) a觸發(fā)方式:當(dāng)用戶在終端按下退出字符(通常是CTRL+\)。默認(rèn)操作:終止進(jìn)程并生成核心轉(zhuǎn)儲文件。描述:用于在程序進(jìn)入無限循環(huán)或不響應(yīng)時終止進(jìn)程,并生成調(diào)試用的核心文件。# p: |+ W& Z' W. B% c3 p
( s6 j6 }. v+ M! B0 J, B# h' p
?3 ?4 R* B2 k/ f% O9 NSIGILL (4)$ {5 p6 b3 Y8 Z7 ~6 E
觸發(fā)方式:進(jìn)程嘗試執(zhí)行非法的機(jī)器語言指令。默認(rèn)操作:終止進(jìn)程。描述:用于指示程序執(zhí)行了無效的操作碼,通常表示程序代碼損壞或內(nèi)存越界。
: j% q# g4 o3 T/ z; l0 f& m
+ [, s4 \: h# p" J& J5 @( b6 `3 c1 R- P
SIGABRT (6)
' ^1 g7 i3 T: T+ u+ \( h4 I4 c0 l觸發(fā)方式:當(dāng)進(jìn)程調(diào)用abort()系統(tǒng)調(diào)用。默認(rèn)操作:終止進(jìn)程并生成核心轉(zhuǎn)儲文件。描述:用于指示進(jìn)程自身發(fā)現(xiàn)了嚴(yán)重錯誤,并請求自我終止。) V6 B d3 R/ A7 W! z5 v/ r
8 O! s* a+ d& a; F. f" G
; x; ~5 d' K6 o' C+ i- P5 k PSIGBUS (7)1 Z3 _/ x& y- J5 O. F2 Y" A! x
觸發(fā)方式:發(fā)生總線錯誤(例如錯誤的內(nèi)存訪問)。默認(rèn)操作:終止進(jìn)程。描述:指示內(nèi)存訪問沖突,通常與硬件有關(guān)。 r1 k' s2 T' f
a) q6 o0 s ~7 J1 m
& t, @( f: ^7 t- G" F- O8 X" P- F& Y) l
SIGFPE (8)
) j }. l4 a& ?6 {5 Y# b觸發(fā)方式:特定類型的算術(shù)錯誤(例如除以零)。默認(rèn)操作:終止進(jìn)程。描述:用于表示浮點(diǎn)運(yùn)算錯誤或其他算術(shù)異常。
, j$ y* t) ~3 ^8 Z: i3 @1 d
6 ~: I1 y& X& t1 m4 ~% _2 s4 N$ {9 |1 |9 W, c }( V3 N
SIGKILL (9): C$ x$ S0 C: c, r+ {
觸發(fā)方式:通過kill -9命令或系統(tǒng)直接發(fā)送。默認(rèn)操作:立即終止進(jìn)程。描述:是無法被捕獲或忽略的“必殺”信號,用于強(qiáng)制終止進(jìn)程。
5 {9 K) L+ k) A9 d" j2 L! c9 B0 G5 I% L& w
% W/ z) C+ v" ]; z/ P+ S3 F
SIGUSR1 (10)
5 I- l6 [& q: Q8 j5 C) L& I觸發(fā)方式:用戶定義的信號,供程序員自定義使用。默認(rèn)操作:終止進(jìn)程。描述:用戶程序可以使用此信號進(jìn)行進(jìn)程間通信或事件通知。: t4 f/ y* E* I% X! s$ O+ ?
6 o! w, B) |: R; L7 w6 J: f! [
" C5 ^. j# Z; @- ^SIGSEGV (11)
' C \8 Q" ~. v' a4 Z) v: w觸發(fā)方式:進(jìn)程嘗試訪問無效的內(nèi)存地址。默認(rèn)操作:終止進(jìn)程。描述:常見于指針錯誤或無效內(nèi)存訪問操作,通常會導(dǎo)致程序崩潰。9 O+ h+ ]% e4 E/ K# z' R& T( {
7 p0 }4 d, q8 y7 E. x, C$ z( N' \' \, u
SIGUSR2 (12)& s' g0 ^9 M9 g0 V$ w
觸發(fā)方式:與SIGUSR1類似,供用戶自定義使用。默認(rèn)操作:終止進(jìn)程。描述:供程序員自定義,用于進(jìn)程間通信或自定義處理邏輯。" S' s7 V: c3 o1 q4 e# ^
: O9 m. C% K# |( {' L# B3 _" \0 ~
SIGPIPE (13)3 t$ y& g& h# g4 e
觸發(fā)方式:進(jìn)程向已關(guān)閉的管道或套接字寫入數(shù)據(jù)。默認(rèn)操作:終止進(jìn)程。描述:當(dāng)嘗試向無效的通信通道寫入數(shù)據(jù)時觸發(fā),通常用于通知進(jìn)程通信失敗。
4 s) x, j: Y6 Y% k
3 ?4 Q! S3 U/ X3 x! L& t) |
: V( r4 Y: n7 c; oSIGALRM (14). c, J) J D- m" I: e
觸發(fā)方式:定時器到期(由alarm()或setitimer()設(shè)置)。默認(rèn)操作:終止進(jìn)程。描述:常用于定時操作,信號觸發(fā)后通常終止程序或進(jìn)行某種處理。
8 C; M/ y, o$ R" @3 w P/ O
6 x$ f1 g1 d! r' [% J
8 {0 Q3 t: H( aSIGTERM (15)
7 [/ S$ [4 c+ d觸發(fā)方式:通過kill命令(不帶-9選項(xiàng))。默認(rèn)操作:終止進(jìn)程。描述:用于請求進(jìn)程正常終止,通常用于優(yōu)雅地關(guān)閉應(yīng)用程序。
o4 e0 K! {* x: m' P. R
! N" v1 [0 F/ b2 F/ q N2 D4 I+ }6 \
SIGCHLD (17)
( o2 a5 L2 m' L# f觸發(fā)方式:子進(jìn)程終止或狀態(tài)改變。默認(rèn)操作:忽略信號。描述:父進(jìn)程用來得知子進(jìn)程終止或狀態(tài)改變,默認(rèn)忽略,父進(jìn)程可選擇處理。8 i- {( v/ c0 m. V/ V
p# S& U* U7 t1 @- ~2 B( u
' y6 \4 `, X/ HSIGCONT (18)
4 o# f+ T! h' n" o9 D U$ s觸發(fā)方式:恢復(fù)已停止的進(jìn)程。默認(rèn)操作:繼續(xù)運(yùn)行進(jìn)程。描述:發(fā)送給已停止的進(jìn)程,使其恢復(fù)執(zhí)行。
* a) F3 l0 Q8 y! E3 i" c
! G4 _$ a/ n) H8 B- B3 n7 K) @) o9 |2 G# }
SIGSTOP (19)
m) d6 _" N: R5 M; v. S觸發(fā)方式:強(qiáng)制停止進(jìn)程。默認(rèn)操作:停止進(jìn)程。描述:無法捕獲或忽略的“必!毙盘,用于暫停進(jìn)程執(zhí)行。3 _2 \! ~, u! Q: E
9 U6 r. d: J5 @2 H* r
# D$ ?) [+ C: O* \SIGTSTP (20)
" P4 p. h" z: T/ M3 P. Z8 M觸發(fā)方式:用戶在終端按下停止字符(CTRL+Z)。默認(rèn)操作:停止進(jìn)程。描述:用于暫停前臺進(jìn)程組中的進(jìn)程,常用于暫停任務(wù)。
- m6 w/ g& D, c2 p3 h/ P" {! G5 Y/ g) E. N
, O9 M) c6 ~ p6 Q& p
SIGXCPU (24)
7 y* R# _9 q3 ~4 W! o2 i2 s觸發(fā)方式:進(jìn)程CPU時間超出限制。默認(rèn)操作:終止進(jìn)程。描述:通常用于檢測進(jìn)程占用CPU過多時間,可能引發(fā)警告或終止進(jìn)程。; d9 X+ V; @: \4 p
3 i3 Y- ^. p& w. I( o
. R0 v S7 W: _' o& j3 J$ n
SIGVTALRM (26)
' q- O# ]( v/ |2 z" {/ E觸發(fā)方式:虛擬定時器到期(由setitimer()設(shè)置)。默認(rèn)操作:終止進(jìn)程。描述:用于虛擬定時器管理,定時器到期后觸發(fā)信號。
. S. w' Q8 c0 X4 J9 {3 @( ^
8 L4 V2 ^0 |4 V/ kSIGWINCH (28)
6 p7 H( M7 @2 E; {# C# K$ u, H觸發(fā)方式:終端窗口大小改變。默認(rèn)操作:忽略信號。描述:當(dāng)終端窗口調(diào)整大小時,前臺進(jìn)程會接收到此信號。
8 V( u$ M, b, Z% f% R# s
9 T. `$ A* ^# z% R
% X3 B, C+ x6 e$ C7 x! G8 b$ F7 \SIGPOLL/SIGIO (29)( ]+ }/ c( \0 m# M" q% B* \2 ^8 k
觸發(fā)方式:異步I/O事件發(fā)生。默認(rèn)操作:終止進(jìn)程。描述:用于異步I/O操作,通知進(jìn)程文件描述符的I/O事件。* G; D+ a$ `; t& A/ n2 W
% X2 M* }& q- e* N+ j# e* S. O1 gSIGSYS (31)' W$ _+ O+ V( Q5 e
觸發(fā)方式:進(jìn)程發(fā)起了無效的系統(tǒng)調(diào)用。默認(rèn)操作:終止進(jìn)程。描述:通常用于捕獲非法系統(tǒng)調(diào)用或程序錯誤。
7 V. {% b+ P) D( G8 k* }. s
/ U2 e: K* y6 P7 c這些信號為Linux進(jìn)程提供了豐富的控制和通信機(jī)制。了解這些信號及其默認(rèn)行為,有助于編寫更加健壯的程序,并能夠有效處理各種異常和中斷。4 Q& ~1 z, F) x" G E; @
( _0 f5 \& _; y: E5 p+ g
wwsqtqkezc164011277627.jpg (71.14 KB, 下載次數(shù): 0)
下載附件
保存到相冊
wwsqtqkezc164011277627.jpg
2024-8-31 11:41 上傳
* v |/ o2 R% s
25ebf5rguzk64011277727.gif (45.46 KB, 下載次數(shù): 0)
下載附件
保存到相冊
25ebf5rguzk64011277727.gif
2024-8-31 11:41 上傳
b7 t7 h. M& z% e點(diǎn)擊閱讀原文,更精彩~ |
|