]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/valgrind/src/valgrind-3.6.0-svn/gdbserver_tests/clean_after_fork.c
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / gdbserver_tests / clean_after_fork.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <errno.h>
4 #include <unistd.h>
5 #include <sys/wait.h>
6 int main()
7 {
8    int mem = 0, pid;
9    pid = fork();
10    if (pid == -1) {
11       mem = 1;
12       perror("fork");
13       exit(1);
14    }
15
16    if (pid == 0) {
17       if (mem == 0)
18          exit(0);
19       else
20          exit(1);
21    } else {
22       int ret;
23       int status;
24       while((ret = waitpid(pid, &status, 0)) != pid) {
25          if (errno != EINTR) {
26             perror("waitpid");
27             exit(1);
28          }
29       }
30       mem = status;
31    }
32    if (mem == 0)
33       printf("mem is zero\n");
34
35    return 0;
36 }