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


  Unix入門
  Unix Shell程式設計
  高階Unix
  Unix有用參考
  Unix有用資源
  精選讀物

版權所有 © 2014 tutorialspoint



  首頁     參考     討論區     關於TP  

sigsuspend() - Unix,Linux系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

sigsuspend - 等待訊號

概要

#include <signal.h>

int sigsuspend(const sigset_t *mask);

描述

sigsuspend() 臨時用mask給出的掩碼替換呼叫程序的訊號掩碼,然後掛起程序,直到傳遞一個其動作是呼叫訊號處理程式或終止程序的訊號。

如果訊號終止程序,則sigsuspend()不返回。如果捕獲到訊號,則在訊號處理程式返回後,sigsuspend()返回,並且訊號掩碼恢復到呼叫sigsuspend()之前的狀態。

不可能阻塞SIGKILL或SIGSTOP;在mask中指定這些訊號不會影響程序的訊號掩碼。

返回值

sigsuspend()總是返回-1,通常帶有錯誤EINTR

錯誤

標籤描述
EFAULT mask指向的記憶體不是程序地址空間的有效部分。
EINTR 呼叫被訊號中斷。

備註

通常,sigsuspend()與sigprocmask()一起使用,以防止在執行關鍵程式碼段期間傳遞訊號。呼叫者首先使用sigprocmask()阻塞訊號。關鍵程式碼完成後,呼叫者透過使用sigprocmask()返回的訊號掩碼(在oldset引數中)呼叫sigsuspend()來等待訊號。

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

符合標準

POSIX.1-2001。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.