#include #include #include #include #include #include #include #include #include int main(int argc, char **argv) { pid_t pid; int fd; if (argc > 1 && strcmp(argv[1], "-p") == 0) { pid = pdfork(&fd, 0); } else { pid = fork(); } if (pid == 0) { sleep(1); exit(0); } else if (pid < 0) { err(1, "fork() failed"); } else { int status; int error = wait4(pid, &status, WEXITED, NULL); if (error < 0) err(1, "wait4 failed"); exit(status); } }