Mercurial > cpython-lru_cache-weakref
annotate Python/dup2.c @ 58765:2ba7677bfa95 legacy-trunk
testCopysign was defined twice in test_math; combine the definitions
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Sat, 06 Feb 2010 23:11:25 +0000 |
| parents | f79434ee41fa |
| children | cd73917f2478 |
| rev | line source |
|---|---|
| 1449 | 1 /* |
| 2 * Public domain dup2() lookalike | |
| 3 * by Curtis Jackson @ AT&T Technologies, Burlington, NC | |
| 4 * electronic address: burl!rcj | |
| 5 * | |
| 6 * dup2 performs the following functions: | |
| 7 * | |
| 8 * Check to make sure that fd1 is a valid open file descriptor. | |
| 9 * Check to see if fd2 is already open; if so, close it. | |
| 10 * Duplicate fd1 onto fd2; checking to make sure fd2 is a valid fd. | |
| 11 * Return fd2 if all went well; return BADEXIT otherwise. | |
| 12 */ | |
| 13 | |
| 14 #include <fcntl.h> | |
| 15 | |
| 16 #define BADEXIT -1 | |
| 17 | |
| 18 int | |
|
13658
f79434ee41fa
Mass ANSIfication of function definitions. Doesn't cover all 'extern'
Thomas Wouters <thomas@python.org>
parents:
1825
diff
changeset
|
19 dup2(int fd1, int fd2) |
| 1449 | 20 { |
| 21 if (fd1 != fd2) { | |
| 22 if (fcntl(fd1, F_GETFL) < 0) | |
| 23 return BADEXIT; | |
| 24 if (fcntl(fd2, F_GETFL) >= 0) | |
| 25 close(fd2); | |
| 26 if (fcntl(fd1, F_DUPFD, fd2) < 0) | |
| 27 return BADEXIT; | |
| 28 } | |
| 29 return fd2; | |
| 30 } |
