xref: /plan9-contrib/sys/src/ape/lib/ap/plan9/dup.c (revision 781103c4074deb8af160e8a0da2742ba6b29dc2b)
1 #include "lib.h"
2 #include <unistd.h>
3 #include <errno.h>
4 
5 int
dup(int oldd)6 dup(int oldd)
7 {
8 	return fcntl(oldd, F_DUPFD, 0);
9 }
10 
11 int
dup2(int oldd,int newd)12 dup2(int oldd, int newd)
13 {
14 	if(newd < 0 || newd >= OPEN_MAX){
15 		errno = EBADF;
16 		return -1;
17 	}
18 	if(oldd == newd && _fdinfo[newd].flags&FD_ISOPEN)
19 		return newd;
20 	close(newd);
21 	return fcntl(oldd, F_DUPFD, newd);
22 }
23