29 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH READV 3  "January 6, 2010"
 | 
						|
.UC 4
 | 
						|
.SH NAME
 | 
						|
readv, writev \- vector-based IO
 | 
						|
.SH SYNOPSIS
 | 
						|
.nf
 | 
						|
.ft B
 | 
						|
#include <sys/uio.h>
 | 
						|
 | 
						|
ssize_t readv(int \fIfildes\fP, const struct iovec *\fIiov\fP, int \fIiovcnt\fP);
 | 
						|
ssize_t writev(int \fIfildes\fP, const struct iovec *\fIiov\fP, int \fIiovcnt\fP);
 | 
						|
.fi
 | 
						|
.SH DESCRIPTION
 | 
						|
The \fBreadv\fP and \fBwritev\fP functions allow one to use multiple buffers
 | 
						|
when reading from or writing to files.  The \fIfildes\fP parameter specifies the
 | 
						|
file descriptor as with the \fBread\fP and \fBwrite\fP functions.  \fIiov\fP
 | 
						|
specifies an array of buffers to be read into or written from.  For each element
 | 
						|
of this array, the iov_base member specifies the address of the buffer and
 | 
						|
iov_len specifies its size in bytes. The number of buffers is specified by 
 | 
						|
\fIiovcnt\fP. At most IOV_MAX buffers may be specified and their total size may
 | 
						|
not exceed SSIZE_MAX (both constants are defined in limits.h).
 | 
						|
.SH "RETURN VALUE"
 | 
						|
In case of success, the total number of bytes read or written is returned. 
 | 
						|
Zero may be returned if no buffers were specified or each buffer has size zero.
 | 
						|
In the case of writev, a return value zero may also indicate an end of file 
 | 
						|
condition. If the functions fail, -1 is returned.
 | 
						|
.SH "SEE ALSO"
 | 
						|
read(2), write(2)
 |