274 lines
7.2 KiB
Groff
274 lines
7.2 KiB
Groff
.\" 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
|
||
.\" %FreeBSD: src/lib/libc/sys/write.2,v 1.12.2.3 2001/03/05 11:44:37 obrien Exp %
|
||
.\"
|
||
.Dd April 2, 1994
|
||
.Dt WRITE 2
|
||
.Os BSD 4
|
||
.Sh ̾¾Î
|
||
.Nm write ,
|
||
.Nm writev ,
|
||
.Nm pwrite
|
||
.Nd ½ÐÎϤνñ¹þ¤ß
|
||
.Sh ¥é¥¤¥Ö¥é¥ê
|
||
.Lb libc
|
||
.Sh ½ñ¼°
|
||
.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"
|
||
.Ft ssize_t
|
||
.Fn pwrite "int d" "const void *buf" "size_t nbytes" "off_t offset"
|
||
.Sh ²òÀâ
|
||
.Fn write
|
||
¤Ï¡¢
|
||
.Fa buf
|
||
¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤«¤éµ½Ò»Ò
|
||
.Fa d
|
||
¤¬»²¾È¤¹¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ë
|
||
.Fa nbytes
|
||
¤Î¥Ç¡¼¥¿¤ò½ñ¹þ¤â¤¦¤È¤·¤Þ¤¹¡£
|
||
.Fn writev
|
||
¤ÏƱÍÍ¤ÎÆ°ºî¤ò¤·¤Þ¤¹¤¬¡¢iov[0], iov[1], ..., iov[iovcnt-1] ¤È¤¤¤¦
|
||
.Fa iov
|
||
ÇÛÎó¤Î¥á¥ó¥Ð¤¬»ØÄꤹ¤ë
|
||
.Fa iovcnt
|
||
¥Ð¥Ã¥Õ¥¡¤«¤é½ÐÎϥǡ¼¥¿¤ò½¸¤á¤Þ¤¹¡£
|
||
.Fn pwrite
|
||
¤ÏƱ¤¸µ¡Ç½¤ò¼Â¹Ô¤·¤Þ¤¹¤¬¡¢¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ò½¤Àµ¤»¤º¤Ë¡¢
|
||
¥Õ¥¡¥¤¥ë¤ÎÆÃÄê¾ì½ê¤Ë½ñ¹þ¤ß¤Þ¤¹¡£
|
||
.Pp
|
||
.Fn writev
|
||
¤Ç¤Ï¡¢
|
||
.Fa iovec
|
||
¹½Â¤ÂΤ¬°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
.Pp
|
||
.Bd -literal -offset indent -compact
|
||
struct iovec {
|
||
char *iov_base; /* ¥Ù¡¼¥¹¥¢¥É¥ì¥¹ */
|
||
size_t iov_len; /* Ťµ */
|
||
};
|
||
.Ed
|
||
.Pp
|
||
³Æ
|
||
.Fa iovec
|
||
¥¨¥ó¥È¥ê¤Ï¡¢½ñ¹þ¤à¥Ç¡¼¥¿¤¬¤¢¤ë¥á¥â¥ê¤Î¥Ù¡¼¥¹¥¢¥É¥ì¥¹¤ÈÎΰè¤ÎŤµ¤ò»ØÄꤷ¤Þ¤¹¡£
|
||
.Fn writev
|
||
¤Ï¡¢¾ï¤ËÎΰèÁ´ÂΤò½ñ¹þ¤ó¤Ç¤«¤é¼¡¤Ë¿Ê¤ß¤Þ¤¹¡£
|
||
.Pp
|
||
¥·¡¼¥¯µ¡Ç½¤¬¤¢¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢
|
||
.Fn write
|
||
¤Ï
|
||
.Fa d
|
||
¤Ë´ØÏ¢¤¹¤ë¥Ý¥¤¥ó¥¿¤¬»ØÄꤹ¤ë°ÌÃ֤dz«»Ï¤·¤Þ¤¹¡£
|
||
.Xr lseek 2
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
.Fn write
|
||
¤«¤éÌá¤ë¤È¡¢¥Ý¥¤¥ó¥¿¤Ï½ñ¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤À¤±¿Ê¤ß¤Þ¤¹¡£
|
||
.Pp
|
||
¥·¡¼¥¯µ¡Ç½¤¬¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤Ï¡¢¾ï¤Ë¸½ºß°ÌÃÖ¤«¤é½ñ¹þ¤ß¤Þ¤¹¡£
|
||
¤³¤Î¤è¤¦¤Ê¥ª¥Ö¥¸¥§¥¯¥È¤Ë´ØÏ¢¤¹¤ë¥Ý¥¤¥ó¥¿¤ÎÃͤÏ̤ÄêµÁ¤Ç¤¹¡£
|
||
.Pp
|
||
¼Â¥æ¡¼¥¶¤¬¥¹¡¼¥Ñ¥æ¡¼¥¶¤Ç¤Ê¤¤¾ì¹ç¡¢
|
||
.Fn write
|
||
¤Ï¡¢set-user-ID ¥Ó¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤Ç¥¯¥ê¥¢¤·¤Þ¤¹¡£
|
||
¤³¤ì¤Ë¤è¤ê¡¢¥¹¡¼¥Ñ¥æ¡¼¥¶¤¬½êͤ¹¤ë½ñ¹þ¤ß²Äǽ¤Ê set-user-ID ¥Õ¥¡¥¤¥ë¤ò
|
||
¡ÖÊᤨ¤¿¡×¥æ¡¼¥¶¤Ï¡¢¥·¥¹¥Æ¥à¥»¥¥å¥ê¥Æ¥£¤òÆÍÇˤǤ¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
|
||
.Pp
|
||
¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë¡¢¥Õ¥í¡¼¥³¥ó¥È¥í¡¼¥ë¤Î±Æ¶Á¤ò¼õ¤±¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç
|
||
Èó¥Ö¥í¥Ã¥¥ó¥° I/O ¤ò»ÈÍѤ¹¤ë¤È¡¢
|
||
.Fn write
|
||
¤È
|
||
.Fn writev
|
||
¤Ï¡¢Í׵ᤷ¤¿¤è¤ê¾¯¤Ê¤¤¥Ð¥¤¥È¿ô¤ò½ñ¹þ¤à¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
Ìá¤êÃͤËÃí°Õ¤·¡¢²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤Î»Ä¤ê¤òºÆÅٻ¤Æ¤¯¤À¤µ¤¤¡£
|
||
.Sh ¼ÂÁõ¾å¤ÎÃí°Õ»ö¹à
|
||
Èó¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢
|
||
.Fn write
|
||
¤Ï
|
||
.Va write
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢
|
||
.Fn write
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
|
||
.Fn _thread_sys_write
|
||
¤ËÁȤ߹þ¤Þ¤ì¡¢
|
||
.Fn write
|
||
¤Ï¡¢ÆÉ¤ß½ñ¤ÍѤË
|
||
.Fa d
|
||
¤ò¥í¥Ã¥¯¤·¤Æ¤«¤é
|
||
.Fn _thread_sys_write
|
||
¤ò¸Æ¤Ó½Ð¤¹´Ø¿ô¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
|
||
.Va _thread_sys_write
|
||
¤Î¸Æ¤Ó½Ð¤·¤¬¥Ö¥í¥Ã¥¯¤¹¤ë¾ì¹ç¤Ï¡¢¥³¥ó¥Æ¥¥¹¥È¥¹¥¤¥Ã¥Á¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
|
||
.Fn write
|
||
¤ÏÌá¤ëÁ°¤Ë
|
||
.Fa d
|
||
¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¤Þ¤¹¡£
|
||
.Pp
|
||
Èó¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢
|
||
.Fn writev
|
||
¤Ï
|
||
.Va writev
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
|
||
.Pp
|
||
¥¹¥ì¥Ã¥É¥é¥¤¥Ö¥é¥ê¤Ç¤Ï¡¢
|
||
.Fn writev
|
||
¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï
|
||
.Fn _thread_sys_writev
|
||
¤ËÁȤ߹þ¤Þ¤ì¡¢
|
||
.Fn writev
|
||
¤Ï¡¢ÆÉ¤ß½ñ¤ÍѤË
|
||
.Fa d
|
||
¤ò¥í¥Ã¥¯¤·¤Æ¤«¤é
|
||
.Fn _thread_sys_writev
|
||
¤ò¸Æ¤Ó½Ð¤¹´Ø¿ô¤Î¤è¤¦¤Ë¼ÂÁõ¤µ¤ì¤Þ¤¹¡£
|
||
.Fn _thread_sys_writev
|
||
¤Î¸Æ¤Ó½Ð¤·¤¬¥Ö¥í¥Ã¥¯¤¹¤ë¾ì¹ç¤Ï¡¢¥³¥ó¥Æ¥¥¹¥È¥¹¥¤¥Ã¥Á¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£
|
||
.Fn writev
|
||
¤ÏÌá¤ëÁ°¤Ë
|
||
.Fa d
|
||
¤Î¥í¥Ã¥¯¤ò²ò½ü¤·¤Þ¤¹¡£
|
||
.Sh Ìá¤êÃÍ
|
||
½èÍý¤¬Àµ¾ï¤Ë´°Î»¤¹¤ë¤È¡¢½ñ¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
|
||
¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢¥¨¥é¡¼¤ò¼¨¤¹¤¿¤á¤Ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô
|
||
.Va errno
|
||
¤¬ÀßÄꤵ¤ì¤Þ¤¹¡£
|
||
.Sh ¥¨¥é¡¼
|
||
.Fn write ,
|
||
.Fn writev ,
|
||
.Fn pwrite
|
||
¤Ï¡¢°Ê²¼¤Î¾ì¹ç¤Ë¥¨¥é¡¼¤È¤Ê¤ê¡¢¥Õ¥¡¥¤¥ë¥Ý¥¤¥ó¥¿¤ÏÊѹ¹¤µ¤ì¤º¤Ë»Ä¤ê¤Þ¤¹¡£
|
||
.Bl -tag -width Er
|
||
.It Bq Er EBADF
|
||
.Fa d
|
||
¤¬¡¢½ñ¹þ¤ßÍѤ˳«¤«¤ì¤¿Í¸ú¤Êµ½Ò»Ò¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er EPIPE
|
||
¥×¥í¥»¥¹¤Ë¤è¤ëÆÉ¼è¤êÍѤ˳«¤«¤ì¤Æ¤¤¤Ê¤¤¥Ñ¥¤¥×¤Ë½ñ¹þ¤â¤¦¤È¤·¤Þ¤·¤¿¡£
|
||
.It Bq Er EPIPE
|
||
ÄÌ¿®Áê¼ê¤Î¥½¥±¥Ã¥È¤ËÀܳ¤·¤Æ¤¤¤Ê¤¤¥¿¥¤¥×
|
||
.Dv SOCK_STREAM
|
||
¤Î¥½¥±¥Ã¥È¤Ë½ñ¹þ¤â¤¦¤È¤·¤Þ¤·¤¿¡£
|
||
.It Bq Er EFBIG
|
||
¥×¥í¥»¥¹¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥ºÀ©¸Â¤«ºÇÂç¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤ò±Û¤¨¤¿¥Õ¥¡¥¤¥ë¤Ë
|
||
½ñ¹þ¤â¤¦¤È¤·¤Þ¤·¤¿¡£
|
||
.It Bq Er EFAULT
|
||
.Fa iov
|
||
¤Î°ìÉô¡¢¤Þ¤¿¤Ï¥Õ¥¡¥¤¥ë¤Ë½ñ¹þ¤à¥Ç¡¼¥¿¤Ï¡¢
|
||
¥×¥í¥»¥¹¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö¤ÎÈϰϳ°¤ò»Ø¤·¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er EINVAL
|
||
.Fa d
|
||
¤Ë´ØÏ¢¤¹¤ë¥Ý¥¤¥ó¥¿¤¬Éé¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er ENOSPC
|
||
¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¡¢½¼Ê¬¤Ê¥¹¥Ú¡¼¥¹¤¬»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£
|
||
.It Bq Er EDQUOT
|
||
¥Õ¥¡¥¤¥ë¤ò´Þ¤à¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥æ¡¼¥¶¤Î¥Ç¥£¥¹¥¯¥Ö¥í¥Ã¥¯³äÅöÎ̤¬
|
||
»È¤¤¿Ô¤¯¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er EIO
|
||
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÆÉ¤ß½ñ¤¤·¤Æ¤¤¤ë´Ö¤ËÆþ½ÐÎÏ¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£
|
||
.It Bq Er EINTR
|
||
½ñ¹þ¤ß¤¬´°Î»¤¹¤ëÁ°¤Ë¥·¥°¥Ê¥ë¤¬³ä¤ê¹þ¤ß¤Þ¤·¤¿¡£
|
||
.It Bq Er EAGAIN
|
||
¥Õ¥¡¥¤¥ë¤ÏÈó¥Ö¥í¥Ã¥¥ó¥°Æþ½ÐÎϤΰõ¤¬¤Ä¤¤¤¿¾õÂ֤ǡ¢¤·¤«¤â¡¢
|
||
¤¹¤°¤Ë¥Ç¡¼¥¿¤ò½ñ¹þ¤á¤ë¾õÂ֤ǤϤ¢¤ê¤Þ¤»¤ó¡£
|
||
.El
|
||
.Pp
|
||
.Fn writev
|
||
¤Ï¡¢°Ê²¼¤Î¥¨¥é¡¼¤òÌ᤹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
.Bl -tag -width Er
|
||
.It Bq Er EDESTADDRREQ
|
||
.Xr connect 2
|
||
¤ò»ÈÍѤ·¤Æ½ñ¹þ¤ßÀ襢¥É¥ì¥¹¤òÀßÄꤷ¤¿
|
||
.Ux
|
||
¥É¥á¥¤¥ó¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë½ñ¹þ¤à¾ì¹ç¤Ë¡¢½ñ¹þ¤ßÀ褬»ÈÍѤǤ¤Þ¤»¤ó¡£
|
||
.It Bq Er EINVAL
|
||
.Fa iovcnt
|
||
¤¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¡¢
|
||
.Dv UIO_MAXIOV
|
||
¤è¤ê¡¢Â礤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er EINVAL
|
||
.Fa iov
|
||
ÇÛÎó
|
||
.Fa iov_len
|
||
ÃͤΠ1 ¤Ä¤¬Éé¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
|
||
.It Bq Er EINVAL
|
||
.Fa iov
|
||
ÇÛÎó
|
||
.Fa iov_len
|
||
Ãͤιç·×¤¬¡¢32 ¥Ó¥Ã¥ÈÀ°¿ô¤ò¥ª¡¼¥Ð¥Õ¥í¡¼¤·¤Þ¤·¤¿¡£
|
||
.It Bq Er ENOBUFS
|
||
¥½¥±¥Ã¥È¤Ë½ñ¤½Ð¤·¤Æ¤¤¤ë»þ¤Ë mbuf ¤Î¥×¡¼¥ë¤ò»È¤¤¿Ô¤¯¤·¤Þ¤·¤¿¡£
|
||
.El
|
||
.Pp
|
||
.Fn pwrite
|
||
¸Æ¤Ó½Ð¤·¤Ï¡¢°Ê²¼¤Î¥¨¥é¡¼¤òÌ᤹¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
.Bl -tag -width Er
|
||
.It Bq Er EINVAL
|
||
»ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er ESPIPE
|
||
¥Õ¥¡¥¤¥ëµ½Ò»Ò¤¬¡¢¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¡¢FIFO ¤Ë´ØÏ¢¤·¤Æ¤¤¤Þ¤¹¡£
|
||
.El
|
||
.Sh ´ØÏ¢¹àÌÜ
|
||
.Xr fcntl 2 ,
|
||
.Xr lseek 2 ,
|
||
.Xr open 2 ,
|
||
.Xr pipe 2 ,
|
||
.Xr select 2
|
||
.Sh µ¬³Ê
|
||
.Fn write
|
||
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢
|
||
.St -p1003.1-90
|
||
¤Ë½àµò¤·¤Æ¤¤¤Þ¤¹¡£
|
||
.Fn writev
|
||
´Ø¿ô¤È
|
||
.Fn pwrite
|
||
´Ø¿ô¤Ï¡¢
|
||
.St -xpg4.2
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|
||
.Sh Îò»Ë
|
||
.Fn pwrite
|
||
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢
|
||
.At V.4
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|
||
.Fn writev
|
||
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢
|
||
.Bx 4.2
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|
||
.Fn write
|
||
´Ø¿ô¸Æ¤Ó½Ð¤·¤Ï¡¢
|
||
.At v6
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|