int __cdecl _dup2 ( int fh1, int fh2 ) { if ((unsigned int)fh2 > (unsigned int)_nfile) { errno = EBADF; _macerrno = 0; return -1; } if (_osfile[fh2] & FOPEN) { _close(fh2); } if (__dupx(fh1, fh2) == fh2) { return 0; } else { return -1; } }
int __cdecl _dup ( int fh ) { int fhNew; /* get a file handle*/ for (fhNew=0; fhNew <_nfile; fhNew++) { if (!(_osfile[fhNew] & FOPEN)) { break; } } if (fhNew >= _nfile) { errno = EMFILE; _macerrno = 0; return -1; } return __dupx(fh, fhNew); }