READ(5)READ(5)
NAME
read, write – transfer data from and to a file
SYNOPSIS
size[4]
Tread
tag[2]
fid[4]
offset[8]
count[4]
size[4]
Rread
tag[2]
count[4]
data[count]
size[4]
Twrite
tag[2]
fid[4]
offset[8]
count[4]
data[count]
size[4]
Rwrite
tag[2]
count[4]
DESCRIPTION
The
read
request
asks for
count
bytes of data
from the file identified by
fid,
which must be opened for reading,
starting
offset
bytes after the beginning of the file.
The bytes are returned with the
read
reply message.
The
count
field in the reply indicates the number of bytes returned.
This may be less than the requested amount.
If the
offset
field is greater than or equal to the number of bytes in the file,
a count of zero will be returned.
For directories,
read
returns an integral number of
directory entries exactly as in
stat
(see
stat(5)),
one for each member of the directory.
The
read
request message must have
offset
equal to zero or the value of
offset
in the previous
read
on the directory, plus the number of bytes
returned in the previous
read.
In other words, seeking other than to the beginning
is illegal in a directory (see
seek(2)).
The
write
request asks that
count
bytes of data be recorded in the file identified by
fid,
which must be opened for writing, starting
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
offset.
Directories may not be written.
The
write
reply records the number of bytes actually written.
It is usually an error
if this is not the same as requested.
Because 9P implementations may limit the size of individual
messages,
more than one message may be produced by a single
read
or
write
call.
The
iounit
field returned by
open(5),
if non-zero, reports the maximum size that is guaranteed
to be transferred atomically.
ENTRY
Read
and
write
messages are generated by the corresponding calls.
Because they include an offset, the
pread
and
pwrite
calls correspond more directly to the 9P messages.
Although
seek(2)
affects the offset, it does not generate a message.