readv man page on CentOS

Man page or keyword search:  
man Server   8420 pages
apropos Keyword Search (all sections)
Output format
CentOS logo
[printable version]

READV(2)		   Linux Programmer's Manual		      READV(2)

NAME
       readv, writev - read or write data into multiple buffers

SYNOPSIS
       #include <sys/uio.h>

       ssize_t readv(int fd, const struct iovec *vector, int count);

       ssize_t writev(int fd, const struct iovec *vector, int count);

DESCRIPTION
       The  readv()  function reads count blocks from the file associated with
       the file descriptor fd into the multiple buffers described by vector.

       The writev() function writes at most count blocks described  by	vector
       to the file associated with the file descriptor fd.

       The pointer vector points to a struct iovec defined in <sys/uio.h> as

	 struct iovec {
	     void *iov_base;   /* Starting address */
	     size_t iov_len;   /* Number of bytes */
	 };

       Buffers are processed in the order specified.

       The  readv() function works just like read(2) except that multiple buf‐
       fers are filled.

       The writev() function works just like  write(2)	except	that  multiple
       buffers are written out.

RETURN VALUE
       On  success, the readv() function returns the number of bytes read; the
       writev() function returns the number of bytes written.  On error, -1 is
       returned, and errno is set appropriately.

ERRORS
       The  errors  are	 as  given for read(2) and write(2).  Additionally the
       following error is defined:

       EINVAL The sum of the iov_len values overflows an  ssize_t  value.  Or,
	      the  vector  count  count	 is less than zero or greater than the
	      permitted maximum.

CONFORMING TO
       4.4BSD (the readv() and writev() functions first appeared  in  4.2BSD),
       POSIX.1-2001.  Linux libc5 used size_t as the type of the count parame‐
       ter, and int as return type for these functions.

LINUX NOTES
       POSIX.1-2001 allows an implementation to place a limit on the number of
       items  that  can	 be passed in vector.  An implementation can advertise
       its limit by defining IOV_MAX in <limits.h> or  at  run	time  via  the
       return value from sysconf(_SC_IOV_MAX).	On Linux, the limit advertised
       by these mechanisms is 1024, which is the true kernel limit.   However,
       the  glibc wrapper functions do some extra work if they detect that the
       underlying kernel system call failed because this limit	was  exceeded.
       In  the case of readv() the wrapper function allocates a temporary buf‐
       fer large enough for all of the items specified by vector, passes  that
       buffer  in  a  call to read(), copies data from the buffer to the loca‐
       tions specified by the iov_base fields of the elements of  vector,  and
       then  frees the buffer.	The wrapper function for writev() performs the
       analogous task using a temporary buffer and a call to write().

BUGS
       It is not advisable to mix calls to functions like readv() or writev(),
       which  operate  on  file descriptors, with the functions from the stdio
       library; the results will be undefined and probably not what you want.

SEE ALSO
       read(2), write(2)

				  2002-10-17			      READV(2)
[top]

List of man pages available for CentOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net