1 /* $OpenBSD: wait.c,v 1.2 2017/03/08 19:25:00 deraadt Exp $ */ 2 /* 3 * Written by Artur Grabowski <art@openbsd.org> 2002 Public Domain. 4 */ 5 #include <sys/types.h> 6 #include <sys/syscall.h> 7 #include <sys/wait.h> 8 #include <unistd.h> 9 #include <stdlib.h> 10 #include <err.h> 11 12 int 13 main() 14 { 15 int status; 16 17 switch (fork()) { 18 case -1: 19 err(1, "fork"); 20 case 0: 21 _exit(17); 22 abort(); 23 } 24 25 if (wait(&status) < 0) 26 err(1, "wait"); 27 28 if (!WIFEXITED(status)) 29 errx(1, "child didn't exit gracefully"); 30 31 if (WEXITSTATUS(status) != 17) 32 errx(1, "wrong exit status"); 33 34 return 0; 35 } 36