diff options
Diffstat (limited to 'upstream/archlinux/man3p/readv.3p')
-rw-r--r-- | upstream/archlinux/man3p/readv.3p | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/readv.3p b/upstream/archlinux/man3p/readv.3p new file mode 100644 index 00000000..3bc59362 --- /dev/null +++ b/upstream/archlinux/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 . |