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 ...

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

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.