Annotation of cci/usr/src/man/man2/read.2, revision 1.1

1.1     ! root        1: .TH READ 2 "27 July 1983"
        !             2: .UC 4
        !             3: .SH NAME
        !             4: read, readv \- read input
        !             5: .SH SYNOPSIS
        !             6: .nf
        !             7: .ft B
        !             8: cc = read(d, buf, nbytes)
        !             9: int cc, d;
        !            10: char *buf;
        !            11: int nbytes;
        !            12: .PP
        !            13: .ft B
        !            14: #include <sys/types.h>
        !            15: #include <sys/uio.h>
        !            16: .PP
        !            17: .ft B
        !            18: cc = readv(d, iov, iovcnt)
        !            19: int cc, d;
        !            20: struct iovec *iov;
        !            21: int iovcnt;
        !            22: .fi
        !            23: .SH DESCRIPTION
        !            24: .I Read
        !            25: attempts to read
        !            26: .I nbytes
        !            27: of data from the object referenced by the descriptor
        !            28: .I d
        !            29: into the buffer pointed to by
        !            30: .IR buf .
        !            31: .I Readv
        !            32: performs the same action, but scatters the input data
        !            33: into the 
        !            34: .I iovcnt
        !            35: buffers specified by the members of the
        !            36: .I iovec
        !            37: array: iov[0], iov[1], ..., iov[iovcnt\|\-\|1].
        !            38: .PP
        !            39: For 
        !            40: .IR readv ,
        !            41: the 
        !            42: .I iovec
        !            43: structure is defined as
        !            44: .PP
        !            45: .nf
        !            46: .RS
        !            47: .DT
        !            48: struct iovec {
        !            49:        caddr_t iov_base;
        !            50:        int     iov_len;
        !            51: };
        !            52: .RE
        !            53: .fi
        !            54: .PP
        !            55: Each 
        !            56: .I iovec
        !            57: entry specifies the base address and length of an area
        !            58: in memory where data should be placed. 
        !            59: .I Readv
        !            60: will always fill an area completely before proceeding
        !            61: to the next.
        !            62: .PP
        !            63: On objects capable of seeking, the
        !            64: .I read
        !            65: starts at a position
        !            66: given by the pointer associated with
        !            67: .IR d ,
        !            68: see
        !            69: .IR lseek (2).
        !            70: Upon return from
        !            71: .IR read ,
        !            72: the pointer is incremented by the number of bytes actually read.
        !            73: .PP
        !            74: Objects that are not capable of seeking always read from the current
        !            75: position.  The value of the pointer associated with such a 
        !            76: object is undefined.
        !            77: .PP
        !            78: Upon successful completion,
        !            79: .I read
        !            80: and
        !            81: .I readv
        !            82: return the number of bytes actually read and placed in the buffer.
        !            83: The system guarantees to read the number of bytes requested if
        !            84: the descriptor references a file which has that many bytes left
        !            85: before the end-of-file, but in no other cases.
        !            86: .PP
        !            87: If the returned value is 0, then
        !            88: end-of-file has been reached.
        !            89: .SH "RETURN VALUE
        !            90: If successful, the
        !            91: number of bytes actually read is returned.
        !            92: Otherwise, a \-1 is returned and the global variable
        !            93: .I errno
        !            94: is set to indicate the error.
        !            95: .SH "ERRORS
        !            96: .I Read
        !            97: and
        !            98: .I readv
        !            99: will fail if one or more of the following are true:
        !           100: .TP 15
        !           101: [EBADF]
        !           102: \fIFildes\fP is not a valid file descriptor open for reading.
        !           103: .TP 15
        !           104: [EFAULT]
        !           105: \fIBuf\fP points outside the allocated address space.
        !           106: .TP 15
        !           107: [EINTR]
        !           108: A read from a slow device was interrupted before
        !           109: any data arrived by the delivery of a signal.
        !           110: .PP
        !           111: In addition, 
        !           112: .I readv
        !           113: may return one of the following errors:
        !           114: .TP 15
        !           115: [EINVAL]
        !           116: .I Iovcnt
        !           117: was less than or equal to 0, or greater than 16.
        !           118: .TP 15
        !           119: [EINVAL]
        !           120: One of the
        !           121: .I iov_len
        !           122: values in the
        !           123: .I iov
        !           124: array was negative.
        !           125: .TP 15
        !           126: [EINVAL]
        !           127: The sum of the
        !           128: .I iov_len
        !           129: values in the
        !           130: .I iov
        !           131: array overflowed a 32-bit integer.
        !           132: .SH "SEE ALSO"
        !           133: dup(2), open(2), pipe(2), socket(2), socketpair(2)

unix.superglobalmegacorp.com

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