URI: 
       tread.9p - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tread.9p (2364B)
       ---
            1 .TH READ 9P 
            2 .SH NAME
            3 read, write \- transfer data from and to a file
            4 .SH SYNOPSIS
            5 .ta \w'\fLTwrite 'u
            6 .IR size [4]
            7 .B Tread
            8 .IR tag [2]
            9 .IR fid [4]
           10 .IR offset [8]
           11 .IR count [4]
           12 .br
           13 .IR size [4]
           14 .B Rread
           15 .IR tag [2]
           16 .IR count [4]
           17 .IR data [ count ]
           18 .PP
           19 .IR size [4]
           20 .B Twrite
           21 .IR tag [2]
           22 .IR fid [4]
           23 .IR offset [8]
           24 .IR count [4]
           25 .IR data [ count ]
           26 .br
           27 .IR size [4]
           28 .B Rwrite
           29 .IR tag [2]
           30 .IR count [4]
           31 .SH DESCRIPTION
           32 The
           33 .B read
           34 request
           35 asks for
           36 .I count
           37 bytes of data
           38 from the file identified by 
           39 .IR fid ,
           40 which must be opened for reading,
           41 starting 
           42 .I offset
           43 bytes after the beginning of the file.
           44 The bytes are returned with the
           45 .B read
           46 reply message.
           47 .PP
           48 The
           49 .I count
           50 field in the reply indicates the number of bytes returned.
           51 This may be less than the requested amount.
           52 If the
           53 .I offset
           54 field is greater than or equal to the number of bytes in the file,
           55 a count of zero will be returned.
           56 .PP
           57 For directories,
           58 .B read
           59 returns an integral number of
           60 directory entries exactly as in
           61 .B stat
           62 (see
           63 .IR stat (9P)),
           64 one for each member of the directory.
           65 The
           66 .B read
           67 request message must have
           68 .B offset
           69 equal to zero or the value of
           70 .B offset
           71 in the previous
           72 .B read
           73 on the directory, plus the number of bytes
           74 returned in the previous
           75 .BR read .
           76 In other words, seeking other than to the beginning
           77 is illegal in a directory.
           78 .PP
           79 The
           80 .B write
           81 request asks that
           82 .I count
           83 bytes of data be recorded in the file identified by
           84 .IR fid ,
           85 which must be opened for writing, starting
           86 .I offset
           87 bytes after the beginning of the file.
           88 If the file is append-only,
           89 the data will be placed at the end of the file regardless of
           90 .IR offset .
           91 Directories may not be written.
           92 .PP
           93 The 
           94 .B write
           95 reply records the number of bytes actually written.
           96 It is usually an error
           97 if this is not the same as requested.
           98 .PP
           99 Because 9P implementations may limit the size of individual
          100 messages,
          101 more than one message may be produced by a single
          102 .I read
          103 or
          104 .I write
          105 call.
          106 The
          107 .I iounit
          108 field returned by
          109 .IR open (9P),
          110 if non-zero, reports the maximum size that is guaranteed
          111 to be transferred atomically.
          112 .SH ENTRY POINTS
          113 .I Fsread
          114 and
          115 .I fswrite
          116 (see
          117 .MR 9pclient (3) )
          118 generate the corresponding messages.
          119 Because they take an offset parameter, the
          120 .I fspread
          121 and
          122 .I fspwrite
          123 calls correspond more directly to the 9P messages.
          124 Although
          125 .I fsseek
          126 affects the offset, it does not generate a message.