READ(3) READ(3)
NAME
read, readn, write, pread, pwrite - read or write file
SYNOPSIS
#include <u.h>
#include <libc.h>
long read(int fd, void *buf, long nbytes)
long readn(int fd, void *buf, long nbytes)
long write(int fd, void *buf, long nbytes)
long pread(int fd, void *buf, long nbytes, vlong offset)
long pwrite(int fd, void *buf, long nbytes, vlong offset)
DESCRIPTION
Read reads nbytes bytes of data from the offset in the file
associated with fd into memory at buf. The offset is
advanced by the number of bytes read. It is not guaranteed
that all nbytes bytes will be read; for example if the file
refers to the console, at most one line will be returned.
In any event the number of bytes read is returned. A return
value of 0 is conventionally interpreted as end of file.
Readn is just like read, but does successive read calls
until nbytes have been read, or a read system call returns a
non-positive count.
Write writes nbytes bytes of data starting at buf to the
file associated with fd at the file offset. The offset is
advanced by the number of bytes written. The number of
characters actually written is returned. It should be
regarded as an error if this is not the same as requested.
Pread and Pwrite equivalent to a seek(3) to offset followed
by a read or write. By combining the operations in a single
atomic call, they more closely match the 9P protocol (see
intro(9p)) and, more important, permit multiprocess programs
to execute multiple concurrent read and write operations on
the same file descriptor without interference.
SOURCE
/usr/local/plan9/src/lib9/readn.c
SEE ALSO
intro(3), open(3), dup(3), pipe(3)
DIAGNOSTICS
Page 1 Plan 9 (printed 10/28/25)
READ(3) READ(3)
These functions set errstr.
Page 2 Plan 9 (printed 10/28/25)