|
|
1.1 ! root 1: .TH DUP 2 "12 February 1983" ! 2: .UC 4 ! 3: .SH NAME ! 4: dup, dup2 \- duplicate a descriptor ! 5: .SH SYNOPSIS ! 6: .nf ! 7: .ft B ! 8: newd = dup(oldd) ! 9: int newd, oldd; ! 10: .PP ! 11: .ft B ! 12: dup2(oldd, newd) ! 13: int oldd, newd; ! 14: .fi ! 15: .SH DESCRIPTION ! 16: .I Dup ! 17: duplicates an existing object descriptor. ! 18: The argument \fIoldd\fP is a small non-negative integer index in ! 19: the per-process descriptor table. The value must be less ! 20: than the size of the table, which is returned by ! 21: .IR getdtablesize (2). ! 22: The new descriptor ! 23: .I newd ! 24: returned by the call is the lowest numbered descriptor which is ! 25: not currently in use by the process. ! 26: .PP ! 27: The object referenced by the descriptor does not distinguish ! 28: between references using \fIoldd\fP and \fInewd\fP in any way. ! 29: Thus if \fInewd\fP and \fIoldd\fP are duplicate references to an open ! 30: file, ! 31: .IR read (2), ! 32: .IR write (2) ! 33: and ! 34: .IR lseek (2) ! 35: calls all move a single pointer into the file. ! 36: If a separate pointer into the file is desired, a different ! 37: object reference to the file must be obtained by issuing an ! 38: additional ! 39: .IR open (2) ! 40: call. ! 41: .PP ! 42: In the second form of the call, the value of ! 43: .IR newd ! 44: desired is specified. If this descriptor is already ! 45: in use, the descriptor is first deallocated as if a ! 46: .IR close (2) ! 47: call had been done first. ! 48: .SH "RETURN VALUE ! 49: The value \-1 is returned if an error occurs in either call. ! 50: The external variable ! 51: .I errno ! 52: indicates the cause of the error. ! 53: .SH "ERRORS ! 54: .I Dup ! 55: and ! 56: .I dup2 ! 57: fail if: ! 58: .TP 15 ! 59: [EBADF] ! 60: \fIOldd\fP or ! 61: \fInewd\fP is not a valid active descriptor ! 62: .TP 15 ! 63: [EMFILE] ! 64: Too many descriptors are active. ! 65: .SH "SEE ALSO" ! 66: accept(2), ! 67: open(2), ! 68: close(2), ! 69: pipe(2), ! 70: socket(2), ! 71: socketpair(2), ! 72: getdtablesize(2)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.