1 2 3 4 5 6 7 8 9 10 11 12 13 14
#include <signal.h> // for sigtimedwait, siginfo_t, sigset_t, sigwait int sigwait(const sigset_t *restrict mask, int *restrict sig) { siginfo_t si; if (sigtimedwait(mask, &si, 0) < 0) { return -1; } *sig = si.si_signo; return 0; }