xref: /haiku/src/tests/system/kernel/wait_test_1.c (revision 5e96d7d537fbec23bad4ae9b4c8e7b02e769f0c6)
1 /*
2  * Copyright 2007, Jérôme Duval. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <errno.h>
8 #include <stdio.h>
9 #include <string.h>
10 #include <sys/wait.h>
11 #include <unistd.h>
12 
13 
14 /*!
15 	wait()/waitpid() should return -1 and set errno to ECHILD, since there
16 	are no children to wait for.
17 */
18 int
19 main()
20 {
21 	int childStatus;
22 	pid_t pid = wait(&childStatus);
23 	printf("wait() returned %ld (%s)\n", pid, strerror(errno));
24 
25 	pid = waitpid(-1, &childStatus, 0);
26 	printf("waitpid(-1, ...) returned %ld (%s)\n", pid, strerror(errno));
27 
28 	pid = waitpid(0, &childStatus, 0);
29 	printf("waitpid(0, ...) returned %ld (%s)\n", pid, strerror(errno));
30 
31 	pid = waitpid(getpgrp(), &childStatus, 0);
32 	printf("waitpid(%ld, ...) returned %ld (%s)\n", getpgrp(), pid, strerror(errno));
33 
34 	return 0;
35 }
36 
37