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