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).
 | 
