NAME

     write - write output


SYNOPSIS

     #include <sys/types.h>
     #include <unistd.h>

     ssize_t write(int d, const void *buf, size_t nbytes)


DESCRIPTION

     Write attempts to write nbytes of data to the object  refer-
     enced by the descriptor d from the buffer pointed to by buf.

     On objects capable of seeking, the write starts at  a  posi-
     tion  given  by the pointer associated with d, see lseek(2).
     Upon return from write, the pointer is  incremented  by  the
     number of bytes actually written.

     Objects that are not capable of seeking  always  write  from
     the  current  position.  The value of the pointer associated
     with such an object is undefined.

     When using non-blocking I/O on objects such as TCP/IP  chan-
     nels that are subject to flow control, write may write fewer
     bytes than requested; the return value must  be  noted,  and
     the remainder of the operation should be retried when possi-
     ble.


RETURN VALUE

     Upon successful completion  the  number  of  bytes  actually
     written  is  returned.   Otherwise  a -1 is returned and the
     global variable errno is set to indicate the error.


ERRORS

     Write will fail and the file pointer will  remain  unchanged
     if one or more of the following are true:

     [EBADF]        D is not a valid descriptor open for writing.

     [EPIPE]        An attempt is made to write to a pipe that is
                    not open for reading by any process.

     [EPIPE]        An attempt is made to write to a TCP  channel
                    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.

     [EFAULT]       Part of the data to be written  to  the  file
                    points   outside   the   process's  allocated
                    address space.

     [ENOSPC]       There is no free space remaining on the  file
                    system containing the file.

     [EIO]          An I/O error occurred while reading  from  or
                    writing to the file system.

     [EAGAIN]       The file was marked for non-blocking I/O, and
                    no data could be written immediately.


SEE ALSO

     fcntl(2), lseek(2), open(2), pipe(2), read(2).