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系統程式設計 第二版
信號
|
369
如果
pid
的值為
0
,則
signo
會被傳送給「進行調用行程」所屬之行程群組中每個行程。
如果
pid
的值為
-1
,則
signo
會被傳送給「進行調用行程」有權對其傳送信號的每個行
程,不含其本身與
init
。我們將在下一小節探討控管信號之遞送的權限。
如果
pid
的值小於
-1
,則
signo
會被傳送給行程群組
-pid
執行成功時,
kill()
會傳回
0
。只要有信號被送出,此呼叫就會被視為成功。執行失敗
時(沒有信號被送出),此呼叫會傳回
-1
並把
errno
設定為下面其中一個值:
EINVAL
signo
指定了無效的信號。
EPERM
進行調用之行程的權限不足以把一個信號傳送給所要求的任何行程。
ESRCH
pid
所代表的行程或行程群組不存在,或者是一個殭屍行程。
權限
為了傳送一個信號給另一個行程,傳送端行程需要具備適當的權限。一個具有
CAP_KILL
能力的行程(通常為 root 所擁有)可以傳送一個信號給任何行程。若不具備此能力,
傳送端行程之有效或真實的用戶識別碼必須等於接收端行程之真實或被暫存的用戶識別
碼。簡而言之,一個用戶只能傳送一個信號給他自己的一個行程。
Unix 系統(包括 Linux)替
SIGCONT
定義了一個例外:一個行程可以傳送
此信號給位於相同期程(session)的任何其他行程。用戶識別碼不一定
需要相符。
如果
signo
的值為
0
—之前所提到的空信號(null signal)—則此呼叫不會送出一個信
號,但是仍舊會進行錯誤檢查。這可用於測試一個行程是否具有適當的權限能夠把一個
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