Home | History | Annotate | Download | only in tests
      1 #ifndef _FDLEAK_H_
      2 #define _FDLEAK_H_
      3 
      4 #include <stdlib.h>
      5 #include <stdio.h>
      6 
      7 #define DO(op) \
      8    ({ \
      9       long res = op; \
     10       if (res < 0) { \
     11          perror(#op); \
     12          exit(1); \
     13       }; \
     14       res; \
     15    })
     16 
     17 /*
     18  * The macro below closes file descriptors inherited from the process
     19  * that forked the current process. Close these file descriptors right
     20  * after the start of main() in order to get consistent results across
     21  * different releases. Known behavior:
     22  * - Fedora Core 1's Perl opens /dev/pts/2 as fd 10.
     23  * - For Ubuntu 8.04, see also
     24  *   https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/235184
     25  */
     26 #define CLOSE_INHERITED_FDS { int i; for (i = 3; i < 64; i++) close(i); }
     27 
     28 #endif /* _FDLEAK_H_ */
     29