debian man page for io_tryread

Query: io_tryread

OS: debian

Section: 3

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

io_tryread(3)						     Library Functions Manual						     io_tryread(3)

NAME
io_tryread - read from a descriptor without blocking
SYNTAX
#include <io.h> int io_tryread(int64 fd,char* buf,int64 len);
DESCRIPTION
io_tryread 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_tryread 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_tryread always succeeds in reading exactly len bytes. o io_tryread 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_tryread returns -1, setting errno to EAGAIN: No bytes were read, because the descriptor is not ready. For example, the descriptor is reading an empty pipe that could still be written to. o io_tryread returns -3, setting errno to something other than EAGAIN: No bytes were read, because the read attempt encountered a persis- tent error, such as a serious disk failure (EIO), an unreachable network (ENETUNREACH), or an invalid descriptor number (EBADF). io_tryread does not pause waiting for a descriptor that is not ready. If you want to pause, use io_waitread or io_wait. You can make io_tryread faster and more efficient by making the socket non-blocking with io_nonblock().
SEE ALSO
io_nonblock(3), io_waitread(3), io_tryreadtimeout(3) io_tryread(3)
Related Man Pages
sendfile(2) - mojave
sendfile(2) - osx
io_nonblock(3) - debian
read(2) - ultrix
readv(2) - ultrix
Similar Topics in the Unix Linux Community
problem in reading file using fread
while read
reading an already complied excutable file
How to use we use int64?
Extract sequences of bytes from binary for differents blocks