#include <assert.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
void handler(int signo) {
printf("SIGCHLD\n");
}
int main() {
void *ret = signal(SIGINT, handler);
assert (ret != SIG_ERR);
pid_t child_pid = fork();
assert (child_pid != -1);
if (child_pid == 0) {
sleep(1);
_exit(14);
}
printf("signo = %d\n", SIGCHLD);
printf("code = %d\n", CLD_EXITED);
printf("child_pid = %d\n", child_pid);
printf("uid = %d\n", getuid());
pid_t waited = wait(NULL);
assert(waited == child_pid);
return 0;
}