#include #include int sigwait(const sigset_t *restrict mask, int *restrict sig) { int ret; siginfo_t si; do ret = sigtimedwait(mask, &si, 0); while (ret<0 && errno==EINTR); if (ret<0) return -1; *sig = si.si_signo; return 0; }