<head>
<title>read(9P) - Plan 9 from User Space</title>
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
</head>
<body bgcolor=#ffffff>
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=10><td>
<tr><td width=20><td>
<tr><td width=20><td><b>READ(9P)</b><td align=right><b>READ(9P)</b>
<tr><td width=20><td colspan=2>
    <br>
<p><font size=+1><b>NAME     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    read, write &ndash; transfer data from and to a file<br>
    
</table>
<p><font size=+1><b>SYNOPSIS     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    <i>size</i>[4] <tt><font size=+1>Tread</font></tt> <i>tag</i>[2] <i>fid</i>[4] <i>offset</i>[8] <i>count</i>[4]<br>
    <i>size</i>[4] <tt><font size=+1>Rread</font></tt> <i>tag</i>[2] <i>count</i>[4] <i>data</i>[<i>count</i>] 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    <i>size</i>[4] <tt><font size=+1>Twrite</font></tt> <i>tag</i>[2] <i>fid</i>[4] <i>offset</i>[8] <i>count</i>[4] <i>data</i>[<i>count</i>]<br>
    <i>size</i>[4] <tt><font size=+1>Rwrite</font></tt> <i>tag</i>[2] <i>count</i>[4]<br>
    
</table>
<p><font size=+1><b>DESCRIPTION     </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    The <tt><font size=+1>read</font></tt> request asks for <i>count</i> bytes of data from the file identified
    by <i>fid</i>, which must be opened for reading, starting <i>offset</i> bytes
    after the beginning of the file. The bytes are returned with the
    <tt><font size=+1>read</font></tt> reply message. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The <i>count</i> field in the reply indicates the number of bytes returned.
    This may be less than the requested amount. If the <i>offset</i> field
    is greater than or equal to the number of bytes in the file, a
    count of zero will be returned. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    For directories, <tt><font size=+1>read</font></tt> returns an integral number of directory
    entries exactly as in <tt><font size=+1>stat</font></tt> (see <i>stat</i>(9P)), one for each member
    of the directory. The <tt><font size=+1>read</font></tt> request message must have <tt><font size=+1>offset</font></tt> equal
    to zero or the value of <tt><font size=+1>offset</font></tt> in the previous <tt><font size=+1>read</font></tt> on the directory,
    plus the number of bytes returned in the previous
    <tt><font size=+1>read</font></tt>. In other words, seeking other than to the beginning is illegal
    in a directory. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The <tt><font size=+1>write</font></tt> request asks that <i>count</i> bytes of data be recorded in
    the file identified by <i>fid</i>, which must be opened for writing,
    starting <i>offset</i> 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 <i>offset</i>. Directories may not be written. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    The <tt><font size=+1>write</font></tt> reply records the number of bytes actually written.
    It is usually an error if this is not the same as requested. 
    <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
    
    Because 9P implementations may limit the size of individual messages,
    more than one message may be produced by a single <i>read</i> or <i>write</i>
    call. The <i>iounit</i> field returned by <i>open</i>(9P), if non-zero, reports
    the maximum size that is guaranteed to be transferred atomically.<br>
    
</table>
<p><font size=+1><b>ENTRY POINTS    </b></font><br>

<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>

    <i>Fsread</i> and <i>fswrite</i> (see <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a>) generate the corresponding
    messages. Because they take an offset parameter, the <i>fspread</i> and
    <i>fspwrite</i> calls correspond more directly to the 9P messages. Although
    <i>fsseek</i> affects the offset, it does not generate a message.<br>
    
</table>

<td width=20>
<tr height=20><td>
</table>
<!-- TRAILER -->
<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr height=15><td width=10><td><td width=10>
<tr><td><td>
<center>
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
</center>
</table>
<!-- TRAILER -->
</body></html>
