119 lines
2.4 KiB
Groff
119 lines
2.4 KiB
Groff
|
||
|
||
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
|
||
|