.\" by Shigeru Tada <stada@mech.titech.ac.jp>
.\"
.TH READV 3 "April 25, 1993" "GNU" "Linux Programmer's Manual"
-.SH ̾Á°
-readv, writev \- Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¡¼¤òÍѤ¤¤¿¥Õ¥¡¥¤¥ëÆþ½ÐÎÏ
-.SH ½ñ¼°
+.SH 名前
+readv, writev \- 複数のバッファーを用いたファイル入出力
+.SH 書式
.nf
.B #include <sys/uio.h>
.sp
.BI "int writev(int " filedes ", const struct iovec *" vector ,
.BI " size_t " count );
.fi
-.SH ÀâÌÀ
+.SH 説明
.B readv()
-´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼\fIfiledes\fP¤ËÏ¢·ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é
-\fIcount\fP¥Ö¥í¥Ã¥¯¤ò¡¢\fIvector\fP¤Ç»ØÄꤵ¤ì¤¿Ê£¿ô¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ËÆÉ
-¤ß¹þ¤à¡£
+関数はファイル・ディスクリプター\fIfiledes\fPに連結されたファイルから
+\fIcount\fPブロックを、\fIvector\fPで指定された複数のバッファーに読
+み込む。
.PP
-\fBwritev()\fP´Ø¿ô¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼\fIfiledes\fP
-¤ËÏ¢·ë¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë\fIvector\fP¥Ý¥¤¥ó¥¿¤Ç»ØÄꤵ¤ì¤¿ºÇÂç
-\fIcount\fP¥Ö¥í¥Ã¥¯¤Þ¤Ç¤ò¥Ð¥Ã¥Õ¥¡¡¼¤«¤é½ñ¤¹þ¤à¡£
+\fBwritev()\fPé\96¢æ\95°ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼\fIfiledes\fP
+に連結されたファイルに\fIvector\fPポインタで指定された最大
+\fIcount\fPブロックまでをバッファーから書き込む。
.PP
.I vector
-¥Ý¥¤¥ó¥¿¤Ï
+ポインタは
.PP
.br
.nf
} ;
.fi
.PP
-¤Î¤è¤¦¤Ë\fB<sys/uio.h>\fP¤ÎÃæ¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂÎ\fBiovec\fP¤ò»Ø¤¹¡£
+のように\fB<sys/uio.h>\fPの中で定義される構造体\fBiovec\fPを指す。
.PP
-¥Ð¥Ã¥Õ¥¡¤Ï
+バッファは
.IR "vector[0]" ", " vector[1] ", ... " "vector[count-1]" .
-¤Î½ç¤Ç½èÍý¤µ¤ì¤ë¡£
+の順で処理される。
.PP
-\fBreadv()\fP´Ø¿ô¤ÏÊ£¿ô¤Î¥Ð¥Ã¥Õ¥¡¡¼¤ËÆɤ߹þ¤à¤È¤¤¤¦¤³¤È¤ò½ü¤±¤Ð¡¢
-\fBread(2)\fP¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£
+\fBreadv()\fP関数は複数のバッファーに読み込むということを除けば、
+\fBread(2)\fPとまったく同じように動作する。
.PP
-\fBwritev()\fP´Ø¿ô¤ÏÊ£¿ô¤Î¥Ð¥Ã¥Õ¥¡¡¼¤«¤é½ñ¤¹þ¤à¤È¤¤¤¦¤³¤È¤ò½ü¤±¤Ð¡¢
-\fBwrite(2)\fP¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤è¤¦¤ËÆ°ºî¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-\fBreadv()\fP´Ø¿ô¤Ï½ñ¤¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£
-\fBwritev()\fP´Ø¿ô¤ÏÆɤ߹þ¤Þ¤ì¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤¹¡£
-.SH ¥¨¥é¡¼
-\fBreadv()\fP¤È\fBwritev()\fP´Ø¿ô¤Ï¼ºÇÔ¤·¤¿¾ì¹ç\fIerrno\fP¤ò°Ê²¼¤ÎÃͤË
-ÀßÄꤹ¤ë¡£
+\fBwritev()\fP関数は複数のバッファーから書き込むということを除けば、
+\fBwrite(2)\fPとまったく同じように動作する。
+.SH 返り値
+\fBreadv()\fP関数は書き込まれたバイト数を返す。
+エラーの場合は \-1 を返す。
+\fBwritev()\fP関数は読み込まれたバイト数を返す。
+エラーの場合は \-1 を返す。
+.SH ã\82¨ã\83©ã\83¼
+\fBreadv()\fPと\fBwritev()\fP関数は失敗した場合\fIerrno\fPを以下の値に
+設定する。
.TP
.B EBADDF
-\fI fd\fP¤¬Í¸ú¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ï¤Ê¤¤
+\fI fd\fPが有効なファイル・ディスクリプターではない
.TP
.B EINVAL
-\fI fd\fP¤¬¡Ê\fBR readv()\fP¤Î¾ì¹ç¡ËÆɤ߹þ¤á¤Ê¤¤¤«¡¢
-¡Ê\fBR writev()\fP¤Î¾ì¹ç¡Ë½ñ¤¹þ¤á¤Ê¤¤¡£
+\fI fd\fPが(\fBR readv()\fPの場合)読み込めないか、
+(\fBR writev()\fPの場合)書き込めない。
.TP
.B EFAULT
-\fI buf\fP¤¬¥¢¥¯¥»¥¹²Äǽ¤Ê¥¢¥É¥ì¥¹¶õ´Ö¤Î³°¤Ë¤¢¤ë¡£
+\fI buf\fPがアクセス可能なアドレス空間の外にある。
.TP
.B EAGAIN
-\fB open()\fP´Ø¿ô¤ò¸Æ¤Ó½Ð¤¹»þ¤ËÈóÄä»ß(Non-blocking) I/O ¤¬ÁªÂò¤µ¤ì¤Æ¤ª¤ê¡¢
-¤¹¤°¤Ë¥Ç¡¼¥¿¤¬Æɤ߹þ¤ß²Äǽ¤Ç¤Ï¤Ê¤«¤Ã¤¿¡£
+\fB open()\fP関数を呼び出す時に非停止(Non-blocking) I/O が選択されており、
+すぐにデータが読み込み可能ではなかった。
.TP
.B EINTR
-¥Ç¡¼¥¿¤¬°ú¤ÅϤµ¤ì¤ëÁ°¤Ë¡¢Æɤߤ³¤ß¤¢¤ë¤¤¤Ï½ñ¤¹þ¤ß¤Ø¤Î
-³ä¤ê¹þ¤ß¤¬¤ª¤³¤Ã¤¿¡£
-.SH ½àµò
-ÉÔÌÀ
-.SH ¥Ð¥°
-\fBR readv() "¤¢¤ë¤¤¤Ï" writev()\fP¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤ò
-Áàºî¤¹¤ë´Ø¿ô¤ò¡¢stdio¥é¥¤¥Ö¥é¥ê¡¼¤«¤é¸Æ¤Ó½Ð¤µ¤ì¤ë´Ø¿ô¤ÈÁȤ߹ç¤ï¤»¤Æ¸Æ
-¤Ó½Ð¤¹¤³¤È¤Ï¿ä¾©¤Ç¤¤Ê¤¤¡£¤½¤Î·ë²Ì¤ÏÄêµÁ¤µ¤ì¤Ê¤¤¤â¤Î¤Ç¤¢¤ê¡¤¤ª¤½¤é¤¯
-´üÂÔ¤·¤¿·ë²Ì¤ÏÆÀ¤é¤ì¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
+データが引き渡される前に、読みこみあるいは書き込みへの
+割り込みがおこった。
+.SH 準拠
+不明
+.SH ã\83\90ã\82°
+\fBR readv() "あるいは" writev()\fPのようなファイル・ディスクリプターを
+操作する関数を、stdioライブラリーから呼び出される関数と組み合わせて呼
+び出すことは推奨できない。その結果は定義されないものであり,おそらく
+期待した結果は得られない。
+.SH 関連項目
.BR read (2),
.BR write (2)