// FreeBSD hands // NetBSD hangs // OpenBSD no support for sigwaitinfo(2) // Linux passes over // SmartOS passes over // DragonflyBSD hangs #include #include #include #include #include #include #include int main(int argc, char **argv) { int ret; sigset_t set; siginfo_t siginfo; pid_t child; sigemptyset(&set); sigaddset(&set, SIGIO); sigaddset(&set, SIGCHLD); child = fork(); if (child == -1) errx(EXIT_FAILURE, "fork"); if (child == 0) { _exit(0); } ret = sigwaitinfo(&set, &siginfo); printf("ret=%d\n", ret); return 0; }