97 lines
2.4 KiB
Groff
97 lines
2.4 KiB
Groff
.\" Copyright (c) 1980 Regents of the University of California.
|
|
.\" All rights reserved. The Berkeley software License Agreement
|
|
.\" specifies the terms and conditions for redistribution.
|
|
.\"
|
|
.\" @(#)write.2 6.5 (Berkeley) 5/14/86
|
|
.\"
|
|
.TH WRITE 2 "May 14, 1986"
|
|
.UC 4
|
|
.SH NAME
|
|
write \- write output
|
|
.SH SYNOPSIS
|
|
.nf
|
|
.ft B
|
|
#include <sys/types.h>
|
|
#include <unistd.h>
|
|
|
|
ssize_t write(int \fId\fP, const void *\fIbuf\fP, size_t \fInbytes\fP)
|
|
.fi
|
|
.SH DESCRIPTION
|
|
.B Write
|
|
attempts to write
|
|
.I nbytes
|
|
of data to the object referenced by the descriptor
|
|
.I d
|
|
from the buffer pointed to by
|
|
.IR buf .
|
|
.PP
|
|
On objects capable of seeking, the \fBwrite\fP starts at a position
|
|
given by the pointer associated with
|
|
.IR d ,
|
|
see
|
|
.BR lseek (2).
|
|
Upon return from
|
|
.BR write ,
|
|
the pointer is incremented by the number of bytes actually written.
|
|
.PP
|
|
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.
|
|
.PP
|
|
When using non-blocking I/O on objects such as TCP/IP channels that are
|
|
subject to flow control,
|
|
.B write
|
|
may write fewer bytes than requested;
|
|
the return value must be noted,
|
|
and the remainder of the operation should be retried when possible.
|
|
.SH "RETURN VALUE
|
|
Upon successful completion the number of bytes actually written
|
|
is returned. Otherwise a \-1 is returned and the global variable
|
|
.B errno
|
|
is set to indicate the error.
|
|
.SH ERRORS
|
|
.B Write
|
|
will fail and the file pointer will remain unchanged if one or more
|
|
of the following are true:
|
|
.TP 15
|
|
[EBADF]
|
|
\fID\fP is not a valid descriptor open for writing.
|
|
.TP 15
|
|
[EPIPE]
|
|
An attempt is made to write to a pipe that is not open
|
|
for reading by any process.
|
|
.TP 15
|
|
[EPIPE]
|
|
An attempt is made to write to a TCP channel
|
|
that is not connected to a peer socket.
|
|
.TP 15
|
|
[EFBIG]
|
|
An attempt was made to write a file that exceeds the process's
|
|
file size limit or the maximum file size.
|
|
.TP 15
|
|
[EFAULT]
|
|
Part of the data to be written to the file
|
|
points outside the process's allocated address space.
|
|
.TP 15
|
|
[ENOSPC]
|
|
There is no free space remaining on the file system
|
|
containing the file.
|
|
.ig
|
|
.TP 15
|
|
[EDQUOT]
|
|
The user's quota of disk blocks on the file system
|
|
containing the file has been exhausted.
|
|
..
|
|
.TP 15
|
|
[EIO]
|
|
An I/O error occurred while reading from or writing to the file system.
|
|
.TP 15
|
|
[EAGAIN]
|
|
The file was marked for non-blocking I/O,
|
|
and no data could be written immediately.
|
|
.SH "SEE ALSO"
|
|
.BR fcntl (2),
|
|
.BR lseek (2),
|
|
.BR open (2),
|
|
.BR pipe (2),
|
|
.BR read (2).
|