亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 關(guān)于sigprocmask的一個(gè)問題 [打印本頁]

作者: blackgenius    時(shí)間: 2010-09-12 15:29
標(biāo)題: 關(guān)于sigprocmask的一個(gè)問題
APUE中有一段話我很疑惑,大致是這樣的:
當(dāng)我阻塞SIGINT后又用sigprocmask解除對(duì)此信號(hào)的阻塞,就在解除阻塞后緊跟pause語句執(zhí)行暫停;可是在pause之前,sigprocmask之后這個(gè)時(shí)間窗口中出現(xiàn)SIGINT的傳遞會(huì)發(fā)生什么情況呢?

APUE中說的是該信號(hào)會(huì)丟失,我覺得不能理解,因?yàn)閟igprocmask(SIG_SETMASK, &oldmask, NULL)不是把阻塞解除了么?那么如果在后面緊接的pause()執(zhí)行之前,把之前就已經(jīng)block了的SIGINT信號(hào)傳遞過來了,那勢(shì)必按照默認(rèn)的方式,終止該進(jìn)程?為什么說會(huì)丟失這個(gè)信號(hào)呢?

幫忙指導(dǎo)一下,謝謝~
作者: insnowind    時(shí)間: 2010-09-12 16:30
你理解的沒錯(cuò),不過要深入理解需要結(jié)合sigsuspend.
APUE在這里所說的信號(hào)丟失,不是真正的丟失,而是沒有被接下來的pause等到。
如果你在程序一開始就注冊(cè)了信號(hào)處理函數(shù),那么在sigprocmask和pause之間的
這個(gè)信號(hào)還是會(huì)觸發(fā)信號(hào)處理函數(shù),如果信號(hào)是SIGINT,缺省就會(huì)中止進(jìn)程。
作者: blackgenius    時(shí)間: 2010-09-12 18:57
回復(fù) 2# insnowind

聽你這么一解釋,清楚很多了~我沒能理解英文里面他說的 "We might not see the signal again"只得是pause無法收到這個(gè)signal,我以為他說的是這個(gè)進(jìn)程收不到這個(gè)信號(hào),那就叫人困惑了~呵呵!謝謝你的幫助!
作者: pengjianbokobe    時(shí)間: 2010-09-12 20:11
學(xué)習(xí)了。
作者: lanying_wzw    時(shí)間: 2010-09-13 22:13
是pause()等不到這個(gè)信號(hào),不是進(jìn)程收不到這個(gè)信號(hào)




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2