plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

read.3 (1831B)


      1 .TH READ 3
      2 .SH NAME
      3 read, readn, write, pread, pwrite \- read or write file
      4 .SH SYNOPSIS
      5 .B #include <u.h>
      6 .br
      7 .B #include <libc.h>
      8 .PP
      9 .B
     10 long read(int fd, void *buf, long nbytes)
     11 .PP
     12 .B
     13 long readn(int fd, void *buf, long nbytes)
     14 .PP
     15 .B
     16 long write(int fd, void *buf, long nbytes)
     17 .PP
     18 .B
     19 long pread(int fd, void *buf, long nbytes, vlong offset)
     20 .PP
     21 .B
     22 long pwrite(int fd, void *buf, long nbytes, vlong offset)
     23 .SH DESCRIPTION
     24 .I Read
     25 reads
     26 .I nbytes
     27 bytes of data
     28 from the offset in the file associated with
     29 .I fd
     30 into memory at
     31 .IR buf .
     32 The offset is advanced by the number of bytes read.
     33 It is not guaranteed
     34 that all
     35 .I nbytes
     36 bytes will be read; for example
     37 if the file refers to the console, at most one line
     38 will be returned.
     39 In any event the number of bytes read is returned.
     40 A return value of
     41 0 is conventionally interpreted as end of file.
     42 .PP
     43 .I Readn
     44 is just like read, but does successive
     45 .I read
     46 calls until
     47 .I nbytes
     48 have been read, or a read system call
     49 returns a non-positive count.
     50 .PP
     51 .I Write
     52 writes
     53 .I nbytes
     54 bytes of data starting at
     55 .I buf
     56 to the file associated with
     57 .I fd
     58 at the file offset.
     59 The offset is advanced by the number of bytes written.
     60 The number of characters actually written is returned.
     61 It should be regarded as an error
     62 if this is not the same as requested.
     63 .PP
     64 .I Pread
     65 and
     66 .I Pwrite
     67 equivalent to a
     68 .MR seek (3)
     69 to
     70 .I offset
     71 followed by a
     72 .I read
     73 or
     74 .IR write .
     75 By combining the operations in a single atomic call, they more closely
     76 match the 9P protocol
     77 (see
     78 .IR intro (9p))
     79 and, more important,
     80 permit multiprocess programs to execute multiple concurrent
     81 read and write operations on the same file descriptor
     82 without interference.
     83 .SH SOURCE
     84 .B \*9/src/lib9/readn.c
     85 .SH SEE ALSO
     86 .MR intro (3) ,
     87 .IR open (3), 
     88 .MR dup (3) ,
     89 .MR pipe (3)
     90 .SH DIAGNOSTICS
     91 These functions set
     92 .IR errstr .