1 | #include <sys/types.h> |
2 | #include <sys/stat.h> |
3 | #include <unistd.h> |
4 | #include <errno.h> |
5 | #include <stdio.h> |
6 | |
7 | int |
8 | main (int argc, char const **argv) |
9 | { |
10 | struct stat buf; |
11 | int i, rv = 0; // Set breakpoint here. |
12 | |
13 | // Make sure stdin/stdout/stderr exist. |
14 | for (i = 0; i <= 2; ++i) { |
15 | if (fstat(fd: i, buf: &buf) != 0) |
16 | return 1; |
17 | } |
18 | |
19 | // Make sure no other file descriptors are open. |
20 | for (i = 3; i <= 256; ++i) { |
21 | if (fstat(fd: i, buf: &buf) == 0 || errno != EBADF) { |
22 | fprintf(stderr, format: "File descriptor %d is open.\n" , i); |
23 | rv = 2; |
24 | } |
25 | } |
26 | |
27 | return rv; |
28 | } |
29 | |