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