rjwalsh | f5f536f | 2003-11-17 17:45:00 +0000 | [diff] [blame] | 1 | #include <unistd.h> |
2 | #include <fcntl.h> | ||||
bart | fbce73d | 2008-05-27 12:33:29 +0000 | [diff] [blame] | 3 | #include "fdleak.h" |
njn | 81b975c | 2009-04-28 05:35:53 +0000 | [diff] [blame] | 4 | |
5 | int main (int argc, char **argv) | ||||
rjwalsh | f5f536f | 2003-11-17 17:45:00 +0000 | [diff] [blame] | 6 | { |
7 | int s1; | ||||
8 | int s2; | ||||
9 | |||||
bart | fbce73d | 2008-05-27 12:33:29 +0000 | [diff] [blame] | 10 | CLOSE_INHERITED_FDS; |
rjwalsh | f5f536f | 2003-11-17 17:45:00 +0000 | [diff] [blame] | 11 | |
njn | 81b975c | 2009-04-28 05:35:53 +0000 | [diff] [blame] | 12 | s1 = DO( open("/dev/null", O_RDONLY) ); |
13 | s2 = DO( open("/dev/null", O_RDONLY) ); | ||||
rjwalsh | f5f536f | 2003-11-17 17:45:00 +0000 | [diff] [blame] | 14 | |
njn | 81b975c | 2009-04-28 05:35:53 +0000 | [diff] [blame] | 15 | DO( dup2(s1, 20) ); // dup s1 as fd 20 |
16 | DO( dup2(s1, s2) ); // dup s1 as fd s2, which closes existing s2 fd | ||||
17 | |||||
rjwalsh | f5f536f | 2003-11-17 17:45:00 +0000 | [diff] [blame] | 18 | return 0; |
19 | } |