Annotation of 43BSDReno/lib/libc/sys/dup.2, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)dup.2       6.3 (Berkeley) 5/13/86
        !             6: .\"
        !             7: .TH DUP 2 "May 13, 1986"
        !             8: .UC 4
        !             9: .SH NAME
        !            10: dup, dup2 \- duplicate a descriptor
        !            11: .SH SYNOPSIS
        !            12: .nf
        !            13: .ft B
        !            14: newd = dup(oldd)
        !            15: int newd, oldd;
        !            16: .PP
        !            17: .ft B
        !            18: dup2(oldd, newd)
        !            19: int oldd, newd;
        !            20: .fi
        !            21: .SH DESCRIPTION
        !            22: .I Dup
        !            23: duplicates an existing object descriptor.
        !            24: The argument \fIoldd\fP is a small non-negative integer index in
        !            25: the per-process descriptor table.  The value must be less
        !            26: than the size of the table, which is returned by
        !            27: .IR getdtablesize (2).
        !            28: The new descriptor returned by the call,
        !            29: .I newd,
        !            30: is the lowest numbered descriptor that is
        !            31: not currently in use by the process.
        !            32: .PP
        !            33: The object referenced by the descriptor does not distinguish
        !            34: between references using \fIoldd\fP and \fInewd\fP in any way.
        !            35: Thus if \fInewd\fP and \fIoldd\fP are duplicate references to an open
        !            36: file,
        !            37: .IR read (2),
        !            38: .IR write (2)
        !            39: and
        !            40: .IR lseek (2)
        !            41: calls all move a single pointer into the file,
        !            42: and append mode, non-blocking I/O and asynchronous I/O options
        !            43: are shared between the references.
        !            44: If a separate pointer into the file is desired, a different
        !            45: object reference to the file must be obtained by issuing an
        !            46: additional
        !            47: .IR open (2)
        !            48: call.
        !            49: The close-on-exec flag on the new file descriptor is unset.
        !            50: .PP
        !            51: In the second form of the call, the value of
        !            52: .IR newd
        !            53: desired is specified.  If this descriptor is already
        !            54: in use, the descriptor is first deallocated as if a
        !            55: .IR close (2)
        !            56: call had been done first.
        !            57: .SH "RETURN VALUE
        !            58: The value \-1 is returned if an error occurs in either call.
        !            59: The external variable
        !            60: .I errno
        !            61: indicates the cause of the error.
        !            62: .SH "ERRORS
        !            63: .I Dup
        !            64: and
        !            65: .I dup2
        !            66: fail if:
        !            67: .TP 15
        !            68: [EBADF]
        !            69: \fIOldd\fP or
        !            70: \fInewd\fP is not a valid active descriptor
        !            71: .TP 15
        !            72: [EMFILE]
        !            73: Too many descriptors are active.
        !            74: .SH "SEE ALSO"
        !            75: accept(2),
        !            76: open(2),
        !            77: close(2),
        !            78: fcntl(2),
        !            79: pipe(2),
        !            80: socket(2),
        !            81: socketpair(2),
        !            82: getdtablesize(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.