summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2017/man3p/readv.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2017/man3p/readv.3p')
-rw-r--r--man-pages-posix-2017/man3p/readv.3p152
1 files changed, 152 insertions, 0 deletions
diff --git a/man-pages-posix-2017/man3p/readv.3p b/man-pages-posix-2017/man3p/readv.3p
new file mode 100644
index 0000000..3bc5936
--- /dev/null
+++ b/man-pages-posix-2017/man3p/readv.3p
@@ -0,0 +1,152 @@
+'\" et
+.TH READV "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.\"
+.SH NAME
+readv
+\(em read a vector
+.SH SYNOPSIS
+.LP
+.nf
+#include <sys/uio.h>
+.P
+ssize_t readv(int \fIfildes\fP, const struct iovec *\fIiov\fP, int \fIiovcnt\fP);
+.fi
+.SH DESCRIPTION
+The
+\fIreadv\fR()
+function shall be equivalent to
+\fIread\fR(),
+except as described below. The
+\fIreadv\fR()
+function shall place the input data into the
+.IR iovcnt
+buffers specified by the members of the
+.IR iov
+array:
+.IR iov [0],
+.IR iov [1],
+\&.\|.\|.,
+.IR iov [\c
+.IR iovcnt \-1].
+The
+.IR iovcnt
+argument is valid if greater than 0 and less than or equal to
+{IOV_MAX}.
+.P
+Each
+.IR iovec
+entry specifies the base address and length of an area
+in memory where data should be placed. The
+\fIreadv\fR()
+function shall always fill an area completely before proceeding
+to the next.
+.P
+Upon successful completion,
+\fIreadv\fR()
+shall mark for update the last data access timestamp of the file.
+.SH "RETURN VALUE"
+Refer to
+.IR "\fIread\fR\^(\|)".
+.SH ERRORS
+Refer to
+.IR "\fIread\fR\^(\|)".
+.P
+In addition, the
+\fIreadv\fR()
+function shall fail if:
+.TP
+.BR EINVAL
+The sum of the
+.IR iov_len
+values in the
+.IR iov
+array overflowed an
+.BR ssize_t .
+.P
+The
+\fIreadv\fR()
+function may fail if:
+.TP
+.BR EINVAL
+The
+.IR iovcnt
+argument was less than or equal to 0, or greater than
+{IOV_MAX}.
+.LP
+.IR "The following sections are informative."
+.SH EXAMPLES
+.SS "Reading Data into an Array"
+.P
+The following example reads data from the file associated with the file
+descriptor
+.IR fd
+into the buffers specified by members of the
+.IR iov
+array.
+.sp
+.RS 4
+.nf
+
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <unistd.h>
+\&...
+ssize_t bytes_read;
+int fd;
+char buf0[20];
+char buf1[30];
+char buf2[40];
+int iovcnt;
+struct iovec iov[3];
+.P
+iov[0].iov_base = buf0;
+iov[0].iov_len = sizeof(buf0);
+iov[1].iov_base = buf1;
+iov[1].iov_len = sizeof(buf1);
+iov[2].iov_base = buf2;
+iov[2].iov_len = sizeof(buf2);
+\&...
+iovcnt = sizeof(iov) / sizeof(struct iovec);
+.P
+bytes_read = readv(fd, iov, iovcnt);
+\&...
+.fi
+.P
+.RE
+.SH "APPLICATION USAGE"
+None.
+.SH RATIONALE
+Refer to
+.IR "\fIread\fR\^(\|)".
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "\fIread\fR\^(\|)",
+.IR "\fIwritev\fR\^(\|)"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "\fB<sys_uio.h>\fP"
+.\"
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1-2017, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 7, 2018 Edition,
+Copyright (C) 2018 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group.
+In the event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .
+.PP
+Any typographical or formatting errors that appear
+in this page are most likely
+to have been introduced during the conversion of the source files to
+man page format. To report such errors, see
+https://www.kernel.org/doc/man-pages/reporting_bugs.html .