The sigwait library API

Let's start with the sigwait(3):

include <signal.h> int sigwait(const sigset_t *set, int *sig);

The sigwait(3) library API allows a process (or thread) to block, wait, until any signal in the signal-set set is pending delivery to it. The moment a signal arrives, the sigwait is unblocked; the particular signal that arrived, its integer value, is placed in the value-result second parameter sig. Under the hood, the sigwait removes the signal just delivered from the process (or thread) pending mask.

Thus, the sigwait(3) is advantageous to the pause(2) by virtue of the following:

  • You can wait upon the delivery of particular signals to the process
  • When one of those signals is delivered, its value is known

The return value ...

Get Hands-On System Programming with Linux now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.