Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 3rd Edition (Vita Nuova)

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

open(2)

dup(2)

pipe(2)

READ(2)

NAME

read, readn, write, read9p, write9p − read or write file

SYNOPSIS

­#include <u.h>
­#include <libc.h>

long read(int fd, void ∗buf, long nbytes)

long readn(int fd, void ∗buf, long nbytes)

long write(int fd, void ∗buf, long nbytes)

long read9p(int fd, void ∗buf, long nbytes)

long write9p(int fd, void ∗buf, long nbytes)

DESCRIPTION

­Read reads ­nbytes bytes of data from the offset in the file associated with ­fd into memory at buf. The offset is advanced by the number of bytes read. It is not guaranteed that all ­nbytes bytes will be read; for example if the file refers to the console, at most one line will be returned.  In any event the number of bytes read is returned.  A return value of 0 is conventionally interpreted as end of file. 

­Readn is just like read, but does successive ­read calls until ­nbytes have been read, or a read system call returns a non-positive count. 

­Write writes ­nbytes bytes of data starting at ­buf to the file associated with ­fd at the file offset.  The offset is advanced by the number of bytes written.  The number of characters actually written is returned.  It should be regarded as an error if this is not the same as requested. 

­Read9p and ­write9p are like read and write and are used when reading/writing ­9P messages to/from a remote file, for example /mnt/term/srv/boot.  9P limits the size of the data in a read or write message, normally 8192 bytes.  When encapsulating a 9P write request or read reply inside another 9P message that limit must be relaxed to make room for the extra header.  ­Read9p and ­write9p are kludges to allow that relaxation.  Using these calls, one can encapsulate 9P messages up to 8 levels deep. 

SOURCE

­/sys/src/libc/9syscall
­/sys/src/libc/port/readn.c

SEE ALSO

intro(2), open(2), dup(2), pipe(2)

DIAGNOSTICS

These functions set errstr.

Plan 9  —  July 29, 2000

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026