.TH READ 9P 
.SH NAME
read, write \- transfer data from and to a file
.SH SYNOPSIS
.ta \w'\fLTwrite 'u
.IR size [4]
.B Tread
.IR tag [2]
.IR fid [4]
.IR offset [8]
.IR count [4]
.br
.IR size [4]
.B Rread
.IR tag [2]
.IR count [4]
.IR data [ count ]
.PP
.IR size [4]
.B Twrite
.IR tag [2]
.IR fid [4]
.IR offset [8]
.IR count [4]
.IR data [ count ]
.br
.IR size [4]
.B Rwrite
.IR tag [2]
.IR count [4]
.SH DESCRIPTION
The
.B read
request
asks for
.I count
bytes of data
from the file identified by 
.IR fid ,
which must be opened for reading,
starting 
.I offset
bytes after the beginning of the file.
The bytes are returned with the
.B read
reply message.
.PP
The
.I count
field in the reply indicates the number of bytes returned.
This may be less than the requested amount.
If the
.I offset
field is greater than or equal to the number of bytes in the file,
a count of zero will be returned.
.PP
For directories,
.B read
returns an integral number of
directory entries exactly as in
.B stat
(see
.IR stat (9P)),
one for each member of the directory.
The
.B read
request message must have
.B offset
equal to zero or the value of
.B offset
in the previous
.B read
on the directory, plus the number of bytes
returned in the previous
.BR read .
In other words, seeking other than to the beginning
is illegal in a directory.
.PP
The
.B write
request asks that
.I count
bytes of data be recorded in the file identified by
.IR fid ,
which must be opened for writing, starting
.I offset
bytes after the beginning of the file.
If the file is append-only,
the data will be placed at the end of the file regardless of
.IR offset .
Directories may not be written.
.PP
The 
.B write
reply records the number of bytes actually written.
It is usually an error
if this is not the same as requested.
.PP
Because 9P implementations may limit the size of individual
messages,
more than one message may be produced by a single
.I read
or
.I write
call.
The
.I iounit
field returned by
.IR open (9P),
if non-zero, reports the maximum size that is guaranteed
to be transferred atomically.
.SH ENTRY POINTS
.I Fsread
and
.I fswrite
(see
.IR 9pclient (3))
generate the corresponding messages.
Because they take an offset parameter, the
.I fspread
and
.I fspwrite
calls correspond more directly to the 9P messages.
Although
.I fsseek
affects the offset, it does not generate a message.
