READV(2) READV(2)
NAME
readv, writev, preadv, pwritev - scatter/gather read and
write
SYNOPSIS
#include <u.h>
#include <libc.h>
typedef
struct IOchunk
{
void *addr;
ulong len;
} IOchunk;
long readv(int fd, IOchunk *io, int nio)
long preadv(int fd, IOchunk *io, int nio, vlong off)
long writev(int fd, IOchunk *io, int nio)
long pwritev(int fd, IOchunk *io, int nio, vlong off)
DESCRIPTION
These functions supplement the standard read and write oper-
ations of read(2) with facilities for scatter/gather I/O.
The set of I/O buffers is collected into an array of IOchunk
structures passed as an argument.
Readv reads data from fd and returns the total number of
bytes received. The received data is stored in the succes-
sive nio elements of the IOchunk array, storing io[0].len
bytes at io[0].addr, the next io[1].len at io[1].addr, and
so on. Preadv does the same, but implicitly seeks to I/O
offset off by analogy with readv.
Writev and pwritev are the analogous write routines.
SOURCE
/sys/src/libc/9sys/readv.c
/sys/src/libc/9sys/writev.c
SEE ALSO
intro(2), read(2)
DIAGNOSTICS
These functions set errstr.
BUGS
The implementations use malloc(2) to build a single buffer
Page 1 Plan 9 (printed 10/29/25)
READV(2) READV(2)
for a standard call to read or write. They are placeholders
for possible future system calls.
Page 2 Plan 9 (printed 10/29/25)