|
|
1.1 root 1: .TH WRITE 2 "27 July 1983"
2: .UC 4
3: .SH NAME
4: write, writev \- write on a file
5: .SH SYNOPSIS
6: .nf
7: .ft B
8: write(d, buf, nbytes)
9: int d;
10: char *buf;
11: int nbytes;
12: .PP
13: .ft B
14: #include <sys/types.h>
15: #include <sys/uio.h>
16: .PP
17: .ft B
18: writev(d, iov, ioveclen)
19: int d;
20: struct iovec *iov;
21: int ioveclen;
22: .fi
23: .SH DESCRIPTION
24: .I Write
25: attempts to write
26: .I nbytes
27: of data to the object referenced by the descriptor
28: .I d
29: from the buffer pointed to by
30: .IR buf .
31: .I Writev
32: performs the same action, but gathers the output data
33: from the \fIiovlen\fP buffers specified by the members
34: of the \fIiovec\fP array: iov[0], iov[1], etc.
35: .PP
36: On objects capable of seeking, the \fIwrite\fP starts at a position
37: given by the pointer associated with
38: .IR d ,
39: see
40: .IR lseek (2).
41: Upon return from
42: .IR write ,
43: the pointer is incremented by the number of bytes actually written.
44: .PP
45: Objects that are not capable of seeking always write from the current
46: position. The value of the pointer associated with such an object
47: is undefined.
48: .PP
49: If the real user is not the super-user, then
50: .I write
51: clears the set-user-id bit on a file.
52: This prevents penetration of system security
53: by a user who
54: \*(lqcaptures\*(rq a writable set-user-id file
55: owned by the super-user.
56: .SH "RETURN VALUE
57: Upon successful completion the number of bytes actually writen
58: is returned. Otherwise a \-1 is returned and
59: .I errno
60: is set to indicate the error.
61: .SH ERRORS
62: .I Write
63: will fail and the file pointer will remain unchanged if one or more
64: of the following are true:
65: .TP 15
66: [EBADF]
67: \fID\fP is not a valid descriptor open for writing.
68: .TP 15
69: [EPIPE]
70: An attempt is made to write to a pipe that is not open
71: for reading by any process.
72: .TP 15
73: [EPIPE]
74: An attempt is made to write to a socket of type SOCK_STREAM
75: which is not connected to a peer socket.
76: .TP 15
77: [EFBIG]
78: An attempt was made to write a file that exceeds the process's
79: file size limit or the maximum file size.
80: .TP 15
81: [EFAULT]
82: Part of \fIiov\fP or data to be written to the file
83: points outside the process's allocated address space.
84: .SH "SEE ALSO"
85: lseek(2), open(2), pipe(2)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.