Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
376
|
第十章
SIG_UNBLOCK
set
裡的信號從進行調用之行程的信號遮罩中移除。換言之,信號遮罩會變成當
前遮罩與
set
之反向(二元 NOT 運算)的交集(二元 AND 運算)。對一個未受阻擋
的信號進行 unblock(疏通)操作是不符合規定的。
如果
oldset
的值不是
NULL
,則此函式會把先前的信號集放入
oldset
如果
set
的值為
NULL
,則此函式會忽略
how
,而且不會變更信號遮罩,但是會把信號遮
罩放入
oldset
。換言之,把 null 值傳進
set
,可做為取得當前信號遮罩的方法。
執行成功時,此呼叫會傳回
0
。執行失敗時,則會傳回
-1
並把
errno
設定為
EINVAL
(表
how
是無效的)或
EFAULT
(表示
set
oldset
是一個無效的指標)。
阻擋
SIGKILL
SIGSTOP
是不被允許的。若試圖把這兩個信號其中之一加入信號遮罩,則
sigprocmask()
會默默予以忽略。
取得未決信號
當核心引發了一個遭到阻擋的信號時,它不會被遞送。我們稱它為
未決信號
pending
signal
)。當一個未決信號不再被阻擋時,核心可以遞送它,讓行程能夠加以處理。
POSIX 定義了一個函式,可用於取得一組未決信號:
#include <signal.h>
int sigpending (sigset_t *set);
執行成功時,
sigpending()
會把一組未決信號放入
set
,並且傳回
0
。執行失敗時,此呼
叫會傳回
-1
並把
errno
設定為
EFAULT
(表示
set
是一個無效的指標)。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812