Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
io_tryread(3)		    Library Functions Manual		   io_tryread(3)

NAME
     io_tryread - read from a descriptor without blocking

SYNTAX
     #include <libowfat/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_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.

     *	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.

     *	io_tryread returns -1, setting errno to EAGAIN: No bytes were read,  be-
	cause  the descriptor is not ready. For example, the descriptor is read-
	ing an empty pipe that could still be written to.

     *	io_tryread returns -3, setting errno to something other than EAGAIN:  No
	bytes  were  read, because the read attempt encountered a persistent er-
	ror, such as a serious disk failure (EIO), an unreachable network  (ENE-
	TUNREACH), 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libowfat_io_tryread&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help