sigprocmask() - Unix,Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

sigprocmask() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

sigprocmask - 檢查和更改被阻塞的訊號

語法

#include <signal.h>

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

描述

sigprocmask() 用於更改訊號掩碼,即當前被阻塞的訊號集。呼叫的行為取決於 how 的值,如下所示。
標籤描述
SIG_BLOCK
 被阻塞的訊號集是當前集和 set 引數的並集。
SIG_UNBLOCK
 set 中的訊號將從當前被阻塞的訊號集中移除。嘗試解除對未被阻塞的訊號的阻塞是合法的。
SIG_SETMASK
 被阻塞的訊號集將設定為引數 set

如果 oldset 非空,則訊號掩碼的先前值將儲存在 oldset 中。

如果 set 為 NULL,則訊號掩碼保持不變(即,忽略 how),但當前訊號掩碼的值仍將返回到 oldset(它不為 NULL)。

在多執行緒程序中,sigprocmask() 的使用未指定;請參閱 pthread_sigmask(3)。

返回值

sigprocmask() 成功時返回 0,錯誤時返回 -1。

錯誤

EINVAL how 中指定的值無效。

備註

無法阻塞 SIGKILLSIGSTOP。嘗試這樣做將被靜默忽略。

如果在 SIGBUSSIGFPESIGILLSIGSEGV 被阻塞時生成,則結果未定義,除非訊號是由 kill(2)、sigqueue(2) 或 raise(3) 生成的。

有關操作訊號集的詳細資訊,請參閱 sigsetops(3)。

符合標準

POSIX.1-2001。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.