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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2865 | 回復: 4
打印 上一主題 下一主題

[C] 關(guān)于sigprocmask的一個問題 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2010-09-12 15:29 |只看該作者 |倒序瀏覽
APUE中有一段話我很疑惑,大致是這樣的:
當我阻塞SIGINT后又用sigprocmask解除對此信號的阻塞,就在解除阻塞后緊跟pause語句執(zhí)行暫停;可是在pause之前,sigprocmask之后這個時間窗口中出現(xiàn)SIGINT的傳遞會發(fā)生什么情況呢?

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

幫忙指導一下,謝謝~

論壇徽章:
0
2 [報告]
發(fā)表于 2010-09-12 16:30 |只看該作者
你理解的沒錯,不過要深入理解需要結(jié)合sigsuspend.
APUE在這里所說的信號丟失,不是真正的丟失,而是沒有被接下來的pause等到。
如果你在程序一開始就注冊了信號處理函數(shù),那么在sigprocmask和pause之間的
這個信號還是會觸發(fā)信號處理函數(shù),如果信號是SIGINT,缺省就會中止進程。

論壇徽章:
0
3 [報告]
發(fā)表于 2010-09-12 18:57 |只看該作者
回復 2# insnowind

聽你這么一解釋,清楚很多了~我沒能理解英文里面他說的 "We might not see the signal again"只得是pause無法收到這個signal,我以為他說的是這個進程收不到這個信號,那就叫人困惑了~呵呵!謝謝你的幫助!

論壇徽章:
0
4 [報告]
發(fā)表于 2010-09-12 20:11 |只看該作者
學習了。

論壇徽章:
0
5 [報告]
發(fā)表于 2010-09-13 22:13 |只看該作者
是pause()等不到這個信號,不是進程收不到這個信號
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP