OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man2 / vmsplice.2
index fa9109a..5ed872e 100644 (file)
@@ -1,8 +1,7 @@
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
 .\" This manpage is Copyright (C) 2006 Jens Axboe
 .\" and Copyright (C) 2006 Michael Kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
 .\"
 .\" Japanese Version Copyright (c) 2007  Akihiro MOTOKI
 .\"         all rights reserved.
 .\" Translated 2007-02-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
-.\" 
-.TH VMSPLICE 2 2009-09-15 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-vmsplice \- ¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤ò¥Ñ¥¤¥×¤Ë·Ñ¤®¹ç¤ï¤»¤ë
-.SH ½ñ¼°
+.\"
+.TH VMSPLICE 2 2012\-05\-04 Linux "Linux Programmer's Manual"
+.SH 名前
+vmsplice \- ユーザ・ページをパイプに継ぎ合わせる
+.SH 書式
 .nf
-.BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) »²¾È */"
-.B #include <fcntl.h>
-.B #include <sys/uio.h>
+\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
+\fB#include <fcntl.h>\fP
+\fB#include <sys/uio.h>\fP
 
-.BI "ssize_t vmsplice(int " fd ", const struct iovec *" iov ,
-.BI "                 unsigned long " nr_segs ", unsigned int " flags );
+\fBssize_t vmsplice(int \fP\fIfd\fP\fB, const struct iovec *\fP\fIiov\fP\fB,\fP
+\fB                 unsigned long \fP\fInr_segs\fP\fB, unsigned int \fP\fIflags\fP\fB);\fP
 .fi
 .\" Return type was long before glibc 2.7
-.SH ÀâÌÀ
+.SH 説明
 .\" Linus: vmsplice() system call to basically do a "write to
 .\" the buffer", but using the reference counting and VM traversal
 .\" to actually fill the buffer. This means that the user needs to
@@ -48,114 +54,68 @@ vmsplice \- 
 .\" the kernel-space one (contrast this to "write()", which copies
 .\" the actual data, and you can thus reuse the buffer immediately
 .\" after a successful write), but that is often easy to do.
-.BR vmsplice ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢
-.I iov
-¤Ç»ØÄꤵ¤ì¤¿¥æ¡¼¥¶¡¦¥á¥â¥ê¤Î
-.I nr_segs
-¤ÎÈϰϤò¥Ñ¥¤¥×¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¡£
-.I fd
-¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+\fBvmsplice\fP()  システムコールは、 \fIiov\fP で指定されたユーザ・メモリの \fInr_segs\fP の範囲をパイプにマッピングする。
+\fIfd\fP はパイプを参照していなければならない。
 
-¥Ý¥¤¥ó¥¿
-.I iov
-¤Ï
-.I iovec
-¹½Â¤ÂΤÎÇÛÎó¤ò»Ø¤¹¡£
-.I iovec
-¹½Â¤ÂΤÏ
-.I <sys/uio.h>
-¤Ç°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
+ポインタ \fIiov\fP は \fIiovec\fP 構造体の配列を指す。 \fIiovec\fP 構造体は \fI<sys/uio.h>\fP
+で以下のように定義されている:
 
 .in +4n
 .nf
 struct iovec {
-    void  *iov_base;            /* ³«»Ï¥¢¥É¥ì¥¹ */
-    size_t iov_len;             /* ¥Ð¥¤¥È¿ô */
+    void  *iov_base;            /* é\96\8bå§\8bã\82¢ã\83\89ã\83¬ã\82¹ */
+    size_t iov_len;             /* バイト数 */
 };
 .in
 .fi
 
-.I flags
-°ú¤­¿ô¤Ë¤Ï¡¢°Ê²¼¤ÎÃͤΠ0 ¸Ä°Ê¾å¤ò¥Ó¥Ã¥ÈËè¤ÎÏÀÍýϤηÁ¤Ç»ØÄꤹ¤ë¡£
-.TP 1.9i
-.B SPLICE_F_MOVE
-.BR vmsplice ()
-¤Ç¤Ï̤»ÈÍÑ¡£
-.BR splice (2)
-»²¾È¡£
-.TP
-.B SPLICE_F_NONBLOCK
+\fIflags\fP 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。
+.TP  1.9i
+\fBSPLICE_F_MOVE\fP
+\fBvmsplice\fP()  では未使用。 \fBsplice\fP(2)  参照。
+.TP 
+\fBSPLICE_F_NONBLOCK\fP
 .\" Not used for vmsplice
 .\" May be in the future -- therefore EAGAIN
-Æþ½ÐÎϤÇÄä»ß (block) ¤·¤Ê¤¤¡£¾ÜºÙ¤Ï
-.BR splice (2)
-»²¾È¡£
-.TP
-.B SPLICE_F_MORE
-¸½ºß¤Î¤È¤³¤í
-.BR vmsplice ()
-¤Ç¤Ï²¿¤Î¸ú²Ì¤â¤Ê¤¤¤¬¡¢¾­ÍèŪ¤Ë¤Ï¼ÂÁõ¤µ¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
-.BR splice (2)
-»²¾È¡£
-.TP
-.B SPLICE_F_GIFT
-¥æ¡¼¥¶¡¦¥Ú¡¼¥¸¤¬¥«¡¼¥Í¥ë¤ØÅϤ¹¤â¤Î (gift) ¤Ç¤¢¤ë¤³¤È¤ò¼¨¤¹¡£
-¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤³¤Î¥á¥â¥ê¤òÀäÂФËÊѹ¹¤·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
+入出力で停止 (block) しない。詳細は \fBsplice\fP(2)  参照。
+.TP 
+\fBSPLICE_F_MORE\fP
+現在のところ \fBvmsplice\fP()  では何の効果もないが、将来的には実装される可能性がある。 \fBsplice\fP(2)  参照。
+.TP 
+\fBSPLICE_F_GIFT\fP
 .\" FIXME Explain the following line in a little more detail:
-¤µ¤â¤Ê¤±¤ì¤Ð¡¢¥Ú¡¼¥¸¥­¥ã¥Ã¥·¥å¤È¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿¤Ï
-°ìÃפ·¤Ê¤¯¤Ê¤ë¤À¤í¤¦¡£
-¥Ú¡¼¥¸¤ò¥«¡¼¥Í¥ë¤ËÅϤ¹¤È¡¢¤³¤Î¼¡¤Î
-.BR splice (2)
-.B SPLICE_F_MOVE
-¤Ç¤½¤Î¥Ú¡¼¥¸¤Î°ÜÆ°¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
-¤³¤Î¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¤³¤Î¼¡¤Î
-.BR splice (2)
-.B SPLICE_F_MOVE
-¤Ç¤½¤Î¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤ò¹Ô¤ï¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¥Ç¡¼¥¿¤Ï¥á¥â¥ê¾å¤Ç¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
-Ťµ¤â¥Ú¡¼¥¸¶­³¦¤ÎÇÜ¿ô¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
 .\" .... if we expect to later SPLICE_F_MOVE to the cache.
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤Æ´°Î»¤¹¤ë¤È¡¢
-.BR vmsplice ()
-¤Ï¥Ñ¥¤¥×¤ËžÁ÷¤·¤¿¥Ð¥¤¥È¿ô¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¡¢
-.BR vmplice ()
-¤Ï \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤ò¥¨¥é¡¼¤ò¼¨¤¹ÃͤËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EBADF
-.I fd
-¤¬Í­¸ú¤Ç¤Ê¤¤¡¢¤â¤·¤¯¤Ï¥Ñ¥¤¥×¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B EINVAL
-.I nr_segs
-¤¬ 0 ¤â¤·¤¯¤Ï
-.B IOV_MAX
-¤è¤ê¤âÂ礭¤¤¡£¤Þ¤¿¤Ï
-.B SPLICE_F_GIFT
-¤¬ÀßÄꤵ¤ì¤¿¤¬¥á¥â¥ê¤¬¥Ú¡¼¥¸¶­³¦¤Ë¤¢¤Ã¤Æ¤¤¤Ê¤¤¡£
-.TP
-.B ENOMEM
-¥á¥â¥êÉÔ­¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
-.BR vmsplice ()
-¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux 2.6.17 ¤Ç½é¤á¤ÆÅо줷¤¿¡£
-.SH ½àµò
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇÍ­¤Ç¤¢¤ë¡£
-.SH È÷¹Í
-»ØÄꤵ¤ì¤¿¥»¥°¥á¥ó¥È¿ô¤¬¾å¸Â¤Ë㤷¤¿¾ì¹ç¡¢
-.BR vmsplice ()
-¤Ï¾¤Î¥Ù¥¯¥È¥ë·Á¼°¤Î read/write ¤ò¹Ô¤¦´Ø¿ô¤ÈƱ¤¸Æ°ºî¤ò¤¹¤ë¡£
-¾å¸Â¤Ï
-.B IOV_MAX
-¤Ç¤¢¤ê¡¢
-.I <limits.h>
-¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-¤³¤Î¥É¥­¥å¥á¥ó¥È¤ò½ñ¤¤¤¿»þÅÀ¤Ç¤ÎÃͤϠ1024 ¤Ç¤¢¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR splice (2),
-.BR tee (2)
+ユーザ・ページがカーネルへ渡すもの (gift) であることを示す。 アプリケーションはこのメモリを絶対に変更してはならない。
+さもなければ、ページキャッシュとディスク上のデータは 一致しなくなるだろう。 ページをカーネルに渡すと、この次の \fBsplice\fP(2)
+\fBSPLICE_F_MOVE\fP でそのページの移動を行うことができる。 このフラグが指定されなかった場合、この次の \fBsplice\fP(2)
+\fBSPLICE_F_MOVE\fP でそのページのコピーを行わなければならない。 データはメモリ上でページ境界にあっていなければならず、
+長さもページ境界の倍数でなければならない。
+.SH 返り値
+成功して完了すると、 \fBvmsplice\fP()  はパイプに転送したバイト数を返す。 エラーの場合、 \fBvmplice\fP()  は \-1 を返し、
+\fIerrno\fP をエラーを示す値に設定する。
+.SH エラー
+.TP 
+\fBEBADF\fP
+\fIfd\fP が有効でない、もしくはパイプを参照していない。
+.TP 
+\fBEINVAL\fP
+\fInr_segs\fP が 0 もしくは \fBIOV_MAX\fP よりも大きい。または \fBSPLICE_F_GIFT\fP
+が設定されたがメモリがページ境界にあっていない。
+.TP 
+\fBENOMEM\fP
+メモリ不足。
+.SH バージョン
+\fBvmsplice\fP() システムコールは Linux 2.6.17 で初めて登場した。
+ライブラリによるサポートは glibc バージョン 2.5 で追加された。
+.SH 準拠
+このシステムコールは Linux 固有である。
+.SH 注意
+指定されたセグメント数が上限に達した場合、 \fBvmsplice\fP()  は他のベクトル形式の read/write を行う関数と同じ動作をする。
+上限は \fBIOV_MAX\fP であり、 \fI<limits.h>\fP で定義されている。 このドキュメントを書いた時点での値は 1024
+である。
+.SH 関連項目
+\fBsplice\fP(2), \fBtee\fP(2)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。