238 lines
6.5 KiB
Groff
238 lines
6.5 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.26.2.1 2004/11/13 11:55:41 yar Exp %
|
||
.\"
|
||
.\" $FreeBSD$
|
||
.Dd October 16, 2004
|
||
.Dt WRITE 2
|
||
.Os
|
||
.Sh ̾¾Î
|
||
.Nm write ,
|
||
.Nm writev ,
|
||
.Nm pwrite
|
||
.Nd ½ÐÎϤνñ¹þ¤ß
|
||
.Sh ¥é¥¤¥Ö¥é¥ê
|
||
.Lb libc
|
||
.Sh ½ñ¼°
|
||
.In sys/types.h
|
||
.In sys/uio.h
|
||
.In 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 {
|
||
void *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
|
||
¤Ï¡¢¥æ¡¼¥¶ ID ÀßÄê¥Ó¥Ã¥È¤ò¥Õ¥¡¥¤¥ë¤Ç¥¯¥ê¥¢¤·¤Þ¤¹¡£
|
||
¤³¤ì¤Ë¤è¤ê¡¢¥¹¡¼¥Ñ¥æ¡¼¥¶¤¬½êͤ¹¤ë½ñ¹þ¤ß²Äǽ¤Ê¥æ¡¼¥¶ ID ÀßÄê¥Õ¥¡¥¤¥ë¤ò
|
||
.Dq Êᤨ¤¿
|
||
¥æ¡¼¥¶¤Ï¡¢¥·¥¹¥Æ¥à¥»¥¥å¥ê¥Æ¥£¤òÆÍÇˤǤ¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£
|
||
.Pp
|
||
¥½¥±¥Ã¥È¤Î¤è¤¦¤Ë¡¢¥Õ¥í¡¼À©¸æ¤Î±Æ¶Á¤ò¼õ¤±¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç
|
||
Èó¥Ö¥í¥Ã¥¥ó¥° I/O ¤ò»ÈÍѤ¹¤ë¤È¡¢
|
||
.Fn write
|
||
¤È
|
||
.Fn writev
|
||
¤Ï¡¢Í׵ᤷ¤¿¤è¤ê¾¯¤Ê¤¤¥Ð¥¤¥È¿ô¤ò½ñ¤¹þ¤à¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
|
||
Ìá¤êÃͤËÃí°Õ¤·¡¢²Äǽ¤Ê¾ì¹ç¤Ë¤Ï¥ª¥Ú¥ì¡¼¥·¥ç¥ó¤Î»Ä¤ê¤òºÆÅٻ¤Æ¤¯¤À¤µ¤¤¡£
|
||
.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
|
||
¥Õ¥¡¥¤¥ë¤ÏÈó¥Ö¥í¥Ã¥¥ó¥°Æþ½ÐÎϤΰõ¤¬¤Ä¤¤¤¿¾õÂ֤ǡ¢¤·¤«¤â¡¢
|
||
¤¹¤°¤Ë¥Ç¡¼¥¿¤ò½ñ¤¹þ¤á¤ë¾õÂ֤ǤϤ¢¤ê¤Þ¤»¤ó¡£
|
||
.It Bq Er EROFS
|
||
¥¹¥é¥¤¥¹¤ÎÀèÆ¬¤Ë¤¢¤ë¥Ç¥£¥¹¥¯¥é¥Ù¥ëÎΰè¤Ë½ñ¹þ¤ß¤ò¹Ô¤ª¤¦¤È¤·¤Þ¤·¤¿¡£
|
||
¥Ç¥£¥¹¥¯¥é¥Ù¥ëÎÎ°è¤Ø¤Î½ñ¹þ¤ß¤ò͸ú¤Ë¤¹¤ë¤Ë¤Ï
|
||
.Xr disklabel 8
|
||
.Fl W
|
||
¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
|
||
.El
|
||
.Pp
|
||
.Fn writev
|
||
¤Ï¡¢°Ê²¼¤Î¥¨¥é¡¼¤òÌ᤹¤³¤È¤¬¤¢¤ê¤Þ¤¹:
|
||
.Bl -tag -width Er
|
||
.It Bq Er EDESTADDRREQ
|
||
.Xr connect 2
|
||
¤ò»ÈÍѤ·¤Æ½ñ¹þ¤ßÀ襢¥É¥ì¥¹¤òÀßÄꤷ¤¿
|
||
.Ux
|
||
¥É¥á¥¤¥ó¥Ç¡¼¥¿¥°¥é¥à¥½¥±¥Ã¥È¤Ë½ñ¤¹þ¤à¾ì¹ç¤Ë¡¢½ñ¹þ¤ßÀ褬»ÈÍѤǤ¤Þ¤»¤ó¡£
|
||
.It Bq Er EINVAL
|
||
.Fa iovcnt
|
||
°ú¿ô¤¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤«¡¢
|
||
.Dv IOV_MAX
|
||
¤è¤ê¡¢Â礤¯¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
|
||
.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
|
||
.Fa offset
|
||
¤ÎÃͤ¬Éé¤Ç¤¹¡£
|
||
.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
|
||
¤ÇÅо줷¤Þ¤·¤¿¡£
|