Exemplo n.º 1
0
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;
		}
}
Exemplo n.º 2
0
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);
}