126 lines
2.3 KiB
Plaintext
126 lines
2.3 KiB
Plaintext
.TH READ 5
|
|
.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 (5)),
|
|
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 (see
|
|
.IR seek (2)).
|
|
.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 (5),
|
|
if non-zero, reports the maximum size that is guaranteed
|
|
to be transferred atomically.
|
|
.SH ENTRY POINTS
|
|
.B Read
|
|
and
|
|
.B write
|
|
messages are generated by the corresponding calls.
|
|
Because they include an offset, the
|
|
.I pread
|
|
and
|
|
.I pwrite
|
|
calls correspond more directly to the 9P messages.
|
|
Although
|
|
.IR seek (2)
|
|
affects the offset, it does not generate a message.
|