| #ifndef _FDLEAK_H_ |
| #define _FDLEAK_H_ |
| |
| #include <stdlib.h> |
| #include <stdio.h> |
| |
| #define DO(op) \ |
| ({ \ |
| long res = op; \ |
| if (res < 0) { \ |
| perror(#op); \ |
| exit(1); \ |
| }; \ |
| res; \ |
| }) |
| |
| /* |
| * The macro below closes file descriptors inherited from the process |
| * that forked the current process. Close these file descriptors right |
| * after the start of main() in order to get consistent results across |
| * different releases. Known behavior: |
| * - Fedora Core 1's Perl opens /dev/pts/2 as fd 10. |
| * - For Ubuntu 8.04, see also |
| * https://bugs.launchpad.net/ubuntu/+source/seahorse/+bug/235184 |
| */ |
| #define CLOSE_INHERITED_FDS { int i; for (i = 3; i < 64; i++) close(i); } |
| |
| #endif /* _FDLEAK_H_ */ |