DragonFly On-Line Manual Pages
io_waitread(3) DragonFly Library Functions Manual io_waitread(3)
NAME
io_waitread - read from a descriptor
SYNTAX
#include <io.h>
int io_waitread(int64 fd,char* buf,int64 len);
DESCRIPTION
io_waitread tries to read len bytes of data from descriptor fd into
buf[0], buf[1], ..., buf[len-1]. (The effects are undefined if len is 0
or smaller.) There are several possible results:
o o_waitread returns an integer between 1 and len: This number of
bytes was available for immediate reading; the bytes were read into
the beginning of buf. Note that this number can be, and often is,
smaller than len; you must not assume that io_waitread always
succeeds in reading exactly len bytes.
o io_waitread returns 0: No bytes were read, because the descriptor is
at end of file. For example, this descriptor has reached the end of
a disk file, or is reading an empty pipe that has been closed by all
writers.
o io_waitread returns -3, setting errno to something other than
EAGAIN: No bytes were read, because the read attempt encountered a
persistent error, such as a serious disk failure (EIO), an
unreachable network (ENETUNREACH), or an invalid descriptor number
(EBADF).
SEE ALSO
io_nonblock(3), io_waitread(3), io_waitreadtimeout(3)
io_waitread(3)