writev(2)
_________________________________________________________________
writev System Call
Write on a file.
_________________________________________________________________
SYNTAX
#include <sys/types.h>
#include <sys/uio.h>
int writev (fildes, iov, iovent)
int fildes;
struct iovec iov[];
int iovent;
PARAMETERS
fildes An active, valid file descriptor.
iov An array of extents.
iovent The number of extents given.
DESCRIPTION
Writev transfers data from the <iovlen> buffers specified by
members of the <iov> array: iov[0], iov[1], ..., iov[iovlen-1]
into the object associated with <fildes>.
For writev, the iovec structure is defined as:
struct iovec {
caddr_t iov_base;
int iov_len;
};
Each <iov> member specifies the base address and length of an
area in memory where data is located. Writev uses an area
completely before proceeding to the next.
<Iovent> must be a positive number less than or equal to a
system-imposed limit guaranteed to be at least 16. The length of
each extent (iov_len) in <iov[]> must be non-negative and the sum
of these lengths must not overflow a `long'.
Except for the disposition of the data, writev is equivalent to
write.
DG/UX 4.00 Page 1
Licensed material--property of copyright holder(s)
writev(2)
ACCESS CONTROL
<Fildes> must be open for writing.
RETURN VALUE
0..nbyte Completed successfully. The number of bytes
actually written is returned. Here, nbyte is the
sum of lengths of the <iovent> extents given in
<iov[]>.
-1 An error occurred. Errno is set to indicate the
error.
EXCEPTIONS
Errno may be set to one of the following error codes:
EBADF <Fildes> is not a valid file descriptor open for
writing.
EPIPE and SIGPIPE signal
An attempt is made to write to a pipe not open for
writing or a socket of type SOCK_STREAM that is
not connected to a peer socket.
EFBIG An attempt was made to write a file that exceeds
the process's file size limit or the maximum file
size.
EINTR A signal was caught during the system call.
EFAULT <Iov> points outside the allocated address space.
EFAULT One or more of the <iov[]> members point outside
the allocated address space.
EINVAL <Iovent> was invalid.
EINVAL One or more of the iov_len values in <iov[]> was
DG/UX 4.00 Page 2
Licensed material--property of copyright holder(s)
writev(2)
negative.
EINVAL The sum of the iov_len values in <iov[]>
overflowed a `long'.
SEE ALSO
The related manual sections: creat(2), dup(2), dup2(2),
fcntl(2), ioctl(2), lseek(2), open(2), pipe(2), select(2),
socket(2), socketpair(2), ulimit(2), write(2).
DG/UX 4.00 Page 3
Licensed material--property of copyright holder(s)