.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
+.\"
+.\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
+.\" all rights reserved.
+.\" Translated 1999-06-26, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
+.\" Updated 2001-02-16, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2003-09-08, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2005-03-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2005-04-17, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2010-04-18, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.24
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
.TH SENDFILE 2 2011\-09\-14 Linux "Linux Programmer's Manual"
.SH 名前
-sendfile \- ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿間でデータを転送する
+sendfile \- ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼間でデータを転送する
.SH 書式
\fB#include <sys/sendfile.h>\fP
.sp
\fBssize_t sendfile(int\fP\fI out_fd\fP\fB, int\fP\fI in_fd\fP\fB, off_t *\fP\fIoffset\fP\fB,
size_t\fP\fI count\fP\fB);\fP
.SH 説明
-\fBsendfile\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\81\8bã\82\89å\88¥ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿へのデータのコピーを行う。
+\fBsendfile\fP() ã\81¯ã\80\81ã\81\82ã\82\8bã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8bã\82\89å\88¥ã\81® ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼へのデータのコピーを行う。
このコピーはカーネル内で行われるので、 \fBsendfile\fP() は、 \fBread\fP(2) と \fBwrite\fP(2)
-を組み合わせるよりも効率がよい。 \fBread\fP(2) や \fBwrite\fP(2) ではユーザ空間との間でデータの転送が必要となるからである。
+を組み合わせるよりも効率がよい。 \fBread\fP(2) や \fBwrite\fP(2) ではユーザー空間との間でデータの転送が必要となるからである。
-\fIin_fd\fP ã\81¯èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿、 \fIout_fd\fP
-は書き込みのためにオープンされたディスクリプタでなければならない。
+\fIin_fd\fP ã\81¯èªã\81¿è¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼、 \fIout_fd\fP
+ã\81¯æ\9b¸ã\81\8dè¾¼ã\81¿ã\81®ã\81\9fã\82\81ã\81«ã\82ªã\83¼ã\83\97ã\83³ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
\fIoffset\fP が NULL でない場合、 \fIoffset\fP は \fBsendfile\fP() が \fIin_fd\fP
-ã\81®ã\81©ã\81\93ã\81\8bã\82\89ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿å§\8bã\82\81ã\82\8bã\81\8bã\82\92示ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bå¤\89æ\95°ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿である。 \fBsendfile\fP()
+ã\81®ã\81©ã\81\93ã\81\8bã\82\89ã\83\87ã\83¼ã\82¿ã\82\92èªã\81¿å§\8bã\82\81ã\82\8bã\81\8bã\82\92示ã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\82\92ä¿\9dæ\8c\81ã\81\99ã\82\8bå¤\89æ\95°ã\81¸ã\81® ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。 \fBsendfile\fP()
は復帰する時、この変数に最後に読み込んだバイトの 次のバイトのオフセットを書き込む。 \fIoffset\fP が NULL でない場合、
-\fBsendfile\fP() ã\81¯ \fIin_fd\fP ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨å\80¤ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\80\82 NULL ã\81®å ´å\90\88ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»オフセットの現在値を
+\fBsendfile\fP() ã\81¯ \fIin_fd\fP ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨å\80¤ã\82\92å¤\89æ\9b´ã\81\97ã\81ªã\81\84ã\80\82 NULL ã\81®å ´å\90\88ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«オフセットの現在値を
\fIin_fd\fP から読み込んだバイト数を反映した位置に調整する。
-\fIoffset\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81ã\83\87ã\83¼ã\82¿ã\81¯ \fIin_fd\fP ã\81®ç\8f¾å\9c¨ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81\8bã\82\89èªã\81¿å\87ºã\81\95ã\82\8cã\80\81
-ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81¯ã\81\93ã\81®å\91¼ã\81³å\87ºã\81\97ã\81§æ\9b´æ\96°ã\81\95ã\82\8cã\82\8bã\80\82
+\fIoffset\fP が NULL の場合、データは \fIin_fd\fP の現在のファイルオフセットから読み出され、
+ファイルオフセットはこの呼び出しで更新される。
-\fIcount\fP ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83»ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿間でコピーするバイト数である。
+\fIcount\fP ã\81¯ã\80\81ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼間でコピーするバイト数である。
\fIin_fd\fP 引き数は \fBmmap\fP(2) 風の操作ができるファイルを指していなければならな
い (ソケットを指定することはできない)。
アドレスがおかしい。
.TP
\fBEINVAL\fP
-ディスクリプタが有効でないか、ロックされている。もしくは \fBmmap\fP(2) 風の操作が \fIin_fd\fP では利用できない。
+ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\8cæ\9c\89å\8a¹ã\81§ã\81ªã\81\84ã\81\8bã\80\81ã\83ã\83\83ã\82¯ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82ã\82\82ã\81\97ã\81\8fã\81¯ \fBmmap\fP(2) 風ã\81®æ\93\8dä½\9cã\81\8c \fIin_fd\fP ã\81§ã\81¯å\88©ç\94¨ã\81§ã\81\8dã\81ªã\81\84ã\80\82
.TP
\fBEIO\fP
\fIin_fd\fP から読み込んでいるうちに予期しないエラーが起こった。
.TP
\fBENOMEM\fP
-\fIin_fd\fP から読み込むための十分なメモリがない。
+\fIin_fd\fP ã\81\8bã\82\89èªã\81¿è¾¼ã\82\80ã\81\9fã\82\81ã\81®å\8d\81å\88\86ã\81ªã\83¡ã\83¢ã\83ªã\83¼ã\81\8cã\81ªã\81\84ã\80\82
.SH バージョン
\fBsendfile\fP は Linux 2.2 の新しい機能である。 インクルードファイル \fI<sys/sendfile.h>\fP は
glibc 2.1 から存在している。
他の UNIX システムでは、異なった方式やプロトタイプで \fBsendfile\fP()
を実装している。移植性を考慮したプログラムでは使用すべきではない。
.SH 注意
-\fBsendfile\fP() ã\82\92使ã\81£ã\81¦ TCP ã\82½ã\82±ã\83\83ã\83\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\81ã\82\8dã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¦ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\81®å\89\8dã\81«ã\83\98ã\83\83ã\83\80ã\83»データを付け加える必要がある場合は、
+\fBsendfile\fP() ã\82\92使ã\81£ã\81¦ TCP ã\82½ã\82±ã\83\83ã\83\88ã\81«ã\83\95ã\82¡ã\82¤ã\83«ã\82\92é\80\81ã\82\8dã\81\86ã\81¨ã\81\97ã\81¦ã\81\84ã\81¦ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\81®å\86\85容ã\81®å\89\8dã\81«ã\83\98ã\83\83ã\83\80ã\83¼データを付け加える必要がある場合は、
パケット数を最小にして性能を上げるために \fBtcp\fP(7) に記述されている \fBTCP_CORK\fP オプションを使うといいだろう。
Linux 2.4 とそれ以前のバージョンでも、 \fIout_fd\fP は通常のファイルを参照でき、
\fBmmap\fP(2), \fBopen\fP(2), \fBsocket\fP(2), \fBsplice\fP(2)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。