版權所有 © 2014 tutorialspoint
#include <signal.h> int sigwaitinfo(const sigset_t *set, siginfo_t *info); int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout);
int sigwaitinfo(const sigset_t *set, siginfo_t *info);
int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout);
sigwaitinfo() 從呼叫程序的掛起訊號列表中刪除已傳遞的訊號,並將其作為函式結果返回訊號編號。如果info引數不是 NULL,則它返回型別為siginfo_t的結構(參見sigaction(2)),其中包含有關訊號的資訊。
透過sigwaitinfo() 返回的訊號按通常順序傳遞;有關更多詳細資訊,請參見signal(7)。
sigtimedwait() 的操作方式與sigwaitinfo() 完全相同,除了它還有一個額外的引數timeout,該引數允許對程序掛起的時間設定上限。此引數的型別如下
struct timespec { long tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ }
如果此結構的兩個欄位都指定為 0,則執行輪詢:sigtimedwait() 立即返回,或者返回有關針對呼叫方掛起的訊號的資訊,或者如果沒有set中的任何訊號掛起,則返回錯誤。
POSIX 未指定sigtimedwait() 的timeout引數的 NULL 值的含義,允許這種可能性具有與對sigwaitinfo() 的呼叫相同的含義,實際上,這正是 Linux 上所做的。
kill (2)
sigaction (2)
signal (2)
sigpending (2)
sigprocmask (2)
sigqueue (2)
廣告