98 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			98 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).
 |