DUP.2
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:2k
- DUP(2) Minix Programmer's Manual DUP(2)
- NAME
- dup, dup2 - duplicate a descriptor
- SYNOPSIS
- #include <unistd.h>
- int dup(int oldd)
- int dup2(int oldd, int newd)
- DESCRIPTION
- Dup duplicates an existing descriptor. The argument oldd is a small non-
- negative integer index in the per-process descriptor table. The value
- must be less than OPEN_MAX, the size of the table. The new descriptor
- returned by the call, let's name it newd, is the lowest numbered
- descriptor that is not currently in use by the process.
- The object referenced by the descriptor does not distinguish between
- references using oldd and newd in any way. Thus if newd and oldd are
- duplicate references to an open file, read(2), write(2) and lseek(2)
- calls all move a single pointer into the file, and append mode, non-
- blocking I/O and asynchronous I/O options are shared between the
- references. If a separate pointer into the file is desired, a different
- object reference to the file must be obtained by issuing an additional
- open(2) call. The close-on-exec flag on the new file descriptor is
- unset.
- In the second form of the call, the value of newd desired is specified.
- If this descriptor is already in use, the descriptor is first deallocated
- as if a close(2) call had been done first. Newd is not closed if it
- equals oldd.
- RETURN VALUE
- The value -1 is returned if an error occurs in either call. The external
- variable errno indicates the cause of the error.
- ERRORS
- Dup and dup2 fail if:
- [EBADF] Oldd or newd is not a valid active descriptor
- [EMFILE] Too many descriptors are active.
- NOTES
- Dup and dup2 are now implemented using the F_DUPFD function of fcntl(2),
- although the old system call interfaces still exist to support old
- programs.
- 4BSD May 13, 1986 1
- DUP(2) Minix Programmer's Manual DUP(2)
- SEE ALSO
- open(2), close(2), fcntl(2), pipe(2).
- 4BSD May 13, 1986 2