1*3e12c5d1SDavid du Colombier #include "lib.h" 2*3e12c5d1SDavid du Colombier #include <unistd.h> 3*3e12c5d1SDavid du Colombier #include <errno.h> 4*3e12c5d1SDavid du Colombier 5*3e12c5d1SDavid du Colombier int dup(int oldd)6*3e12c5d1SDavid du Colombierdup(int oldd) 7*3e12c5d1SDavid du Colombier { 8*3e12c5d1SDavid du Colombier return fcntl(oldd, F_DUPFD, 0); 9*3e12c5d1SDavid du Colombier } 10*3e12c5d1SDavid du Colombier 11*3e12c5d1SDavid du Colombier int dup2(int oldd,int newd)12*3e12c5d1SDavid du Colombierdup2(int oldd, int newd) 13*3e12c5d1SDavid du Colombier { 14*3e12c5d1SDavid du Colombier if(newd < 0 || newd >= OPEN_MAX){ 15*3e12c5d1SDavid du Colombier errno = EBADF; 16*3e12c5d1SDavid du Colombier return -1; 17*3e12c5d1SDavid du Colombier } 18*3e12c5d1SDavid du Colombier if(oldd == newd && _fdinfo[newd].flags&FD_ISOPEN) 19*3e12c5d1SDavid du Colombier return newd; 20*3e12c5d1SDavid du Colombier close(newd); 21*3e12c5d1SDavid du Colombier return fcntl(oldd, F_DUPFD, newd); 22*3e12c5d1SDavid du Colombier } 23