xref: /llvm-project/lldb/test/API/functionalities/avoids-fd-leak/main.c (revision 99451b4453688a94c6014cac233d371ab4cc342d)
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
main(int argc,char const ** argv)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(i, &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(i, &buf) == 0 || errno != EBADF) {
22             fprintf(stderr, "File descriptor %d is open.\n", i);
23             rv = 2;
24         }
25     }
26 
27     return rv;
28 }
29