summaryrefslogtreecommitdiffstats
path: root/lib/libc/sys/write.2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/sys/write.2')
-rw-r--r--lib/libc/sys/write.2252
1 files changed, 0 insertions, 252 deletions
diff --git a/lib/libc/sys/write.2 b/lib/libc/sys/write.2
deleted file mode 100644
index f8d8063..0000000
--- a/lib/libc/sys/write.2
+++ /dev/null
@@ -1,252 +0,0 @@
-.\" Copyright (c) 1980, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
-.\" 4. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" @(#)write.2 8.5 (Berkeley) 4/2/94
-.\"
-.Dd April 2, 1994
-.Dt WRITE 2
-.Os BSD 4
-.Sh NAME
-.Nm write ,
-.Nm writev
-.Nd write output
-.Sh SYNOPSIS
-.Fd #include <sys/types.h>
-.Fd #include <sys/uio.h>
-.Fd #include <unistd.h>
-.Ft ssize_t
-.Fn write "int d" "const void *buf" "size_t nbytes"
-.Ft ssize_t
-.Fn writev "int d" "const struct iovec *iov" "int iovcnt"
-.Sh DESCRIPTION
-.Fn Write
-attempts to write
-.Fa nbytes
-of data to the object referenced by the descriptor
-.Fa d
-from the buffer pointed to by
-.Fa buf .
-.Fn Writev
-performs the same action, but gathers the output data
-from the
-.Fa iovcnt
-buffers specified by the members of the
-.Fa iov
-array: iov[0], iov[1], ..., iov[iovcnt\|-\|1].
-.Pp
-For
-.Fn writev ,
-the
-.Fa iovec
-structure is defined as:
-.Pp
-.Bd -literal -offset indent -compact
-struct iovec {
- char *iov_base; /* Base address. */
- size_t iov_len; /* Length. */
-};
-.Ed
-.Pp
-Each
-.Fa iovec
-entry specifies the base address and length of an area
-in memory from which data should be written.
-.Fn Writev
-will always write a complete area before proceeding
-to the next.
-.Pp
-On objects capable of seeking, the
-.Fn write
-starts at a position
-given by the pointer associated with
-.Fa d ,
-see
-.Xr lseek 2 .
-Upon return from
-.Fn write ,
-the pointer is incremented by the number of bytes which were 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
-If the real user is not the super-user, then
-.Fn write
-clears the set-user-id bit on a file.
-This prevents penetration of system security
-by a user who
-.Dq captures
-a writable set-user-id file
-owned by the super-user.
-.Pp
-When using non-blocking I/O on objects such as sockets that are subject
-to flow control,
-.Fn write
-and
-.Fn writev
-may write fewer bytes than requested;
-the return value must be noted,
-and the remainder of the operation should be retried when possible.
-.Sh IMPLEMENTATION NOTES
-.Pp
-In the non-threaded library
-.Fn write
-is implemented as the
-.Va write
-syscall.
-.Pp
-In the threaded library, the
-.Va write
-syscall is assembled to
-.Fn _thread_sys_write
-and
-.Fn write
-is implemented as a function which locks
-.Va d
-for read and write, then calls
-.Fn _thread_sys_write .
-If the call to
-.Fn _thread_sys_write
-would block, a context switch is performed. Before returning,
-.Fn write
-unlocks
-.Va d .
-.Pp
-In the non-threaded library
-.Fn writev
-is implemented as the
-.Va writev
-syscall.
-.Pp
-In the threaded library, the
-.Va writev
-syscall is assembled to
-.Fn _thread_sys_writev
-and
-.Fn writev
-is implemented as a function which locks
-.Va d
-for read and write, then calls
-.Fn _thread_sys_writev .
-If the call to
-.Fn _thread_sys_writev
-would block, a context switch is performed. Before returning,
-.Fn writev
-unlocks
-.Va d .
-.Sh RETURN VALUES
-Upon successful completion the number of bytes which were written
-is returned. Otherwise a -1 is returned and the global variable
-.Va errno
-is set to indicate the error.
-.Sh ERRORS
-.Fn Write
-and
-.Fn writev
-will fail and the file pointer will remain unchanged if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-.Fa D
-is not a valid descriptor open for writing.
-.It Bq Er EPIPE
-An attempt is made to write to a pipe that is not open
-for reading by any process.
-.It Bq Er EPIPE
-An attempt is made to write to a socket of type
-.Dv SOCK_STREAM
-that is not connected to a peer socket.
-.It Bq Er EFBIG
-An attempt was made to write a file that exceeds the process's
-file size limit or the maximum file size.
-.It Bq Er EFAULT
-Part of
-.Fa iov
-or data to be written to the file
-points outside the process's allocated address space.
-.It Bq Er EINVAL
-The pointer associated with
-.Fa d
-was negative.
-.It Bq Er ENOSPC
-There is no free space remaining on the file system
-containing the file.
-.It Bq Er EDQUOT
-The user's quota of disk blocks on the file system
-containing the file has been exhausted.
-.It Bq Er EIO
-An I/O error occurred while reading from or writing to the file system.
-.It Bq Er EAGAIN
-The file was marked for non-blocking I/O,
-and no data could be written immediately.
-.El
-.Pp
-In addition,
-.Fn writev
-may return one of the following errors:
-.Bl -tag -width Er
-.It Bq Er EINVAL
-.Fa Iovcnt
-was less than or equal to 0, or greater than
-.Dv UIO_MAXIOV .
-.It Bq Er EINVAL
-One of the
-.Fa iov_len
-values in the
-.Fa iov
-array was negative.
-.It Bq Er EINVAL
-The sum of the
-.Fa iov_len
-values in the
-.Fa iov
-array overflowed a 32-bit integer.
-.El
-.Sh SEE ALSO
-.Xr fcntl 2 ,
-.Xr lseek 2 ,
-.Xr open 2 ,
-.Xr pipe 2 ,
-.Xr select 2
-.Sh STANDARDS
-The
-.Fn write
-function call is expected to conform to
-.St -p1003.1-90 .
-.Sh HISTORY
-The
-.Fn writev
-function call
-appeared in
-.Bx 4.2 .
-A
-.Fn write
-function call appeared in
-.At v6 .
OpenPOWER on IntegriCloud