OSDN Git Service

(split) LDP: Release pages with over 80% translations.
[linuxjm/LDP_man-pages.git] / release / man2 / fallocate.2
index b962e30..bd25ed4 100644 (file)
 .\" Written by Dave Chinner <dgc@sgi.com>
 .\" May be distributed as per GNU General Public License version 2.
 .\"
-.\" Japanese Version Copyright (c) 2007  Akihiro MOTOKI
-.\"         all rights reserved.
-.\" Translated 2007-10-16, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.66
-.\" Updated 2008-10-13, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.11
-.\" 
-.TH FALLOCATE 2 2010-09-10 "Linux" "Linux Programmer's Manual"
+.\" 2011-09-19: Added FALLOC_FL_PUNCH_HOLE
+.\" 2011-09-19: Substantial restructuring of the page
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FALLOCATE 2 2012\-04\-23 Linux "Linux Programmer's Manual"
 .SH 名前
 fallocate \- ファイル空間の操作
 .SH 書式
 .nf
-.BR "#define _GNU_SOURCE" "             /* feature_test_macros(7) 参照 */"
-.B #include <fcntl.h>
+\fB#define _GNU_SOURCE\fP             /* feature_test_macros(7) 参照 */
+\fB#include <fcntl.h>\fP
 
-.BI "int fallocate(int " fd ", int " mode ", off_t " offset \
-", off_t " len ");"
+\fBint fallocate(int \fP\fIfd\fP\fB, int \fP\fImode\fP\fB, off_t \fP\fIoffset\fP\fB, off_t \fP\fIlen\fP\fB);\fP
 .fi
 .SH 説明
-このシステムコールは、移植性のない、Linux 固有のシステムコールである。
-移植性が必要な場合は、ファイルに対してディスク空間を確実に確保するために、
-POSIX.1 で規定された方法である
-.BR posix_fallocate (3)
-を使うこと。
+このシステムコールは、移植性のない、Linux 固有のシステムコールである。 移植性が必要な場合は、ファイルに対してディスク空間を確実に確保するために、
+POSIX.1 で規定された方法である \fBposix_fallocate\fP(3)  を使うこと。
 
-.BR fallocate ()
-を使うと、
-.I fd
-が参照するファイルに割り当てられたディスク空間を直接操作できる。
-操作対象は、
-.I offset
-から始まる長さ
-.I len
-バイトの領域である。
+\fBfallocate\fP()  を使うと、 \fIfd\fP が参照するファイルに割り当てられたディスク空間を直接操作できる。 操作対象は、
+\fIoffset\fP から始まる長さ \fIlen\fP バイトの領域である。
 
-.I mode
-引き数は、指定された領域に対して実行する操作を指定する。
-現在のところ、
-.I mode
-に指定できるフラグは以下の一つだけである。
-.TP
-.B FALLOC_FL_KEEP_SIZE
-このフラグは、
-.I offset
-と
-.I len
-で指定された領域のディスク空間を割り当て、その空間を 0 で初期化する。
-呼び出しが成功すると、それに続いてこの領域への書き込みが行われるが、
-ディスク空間の不足による書き込み失敗が発生しないことが保証される。
-ファイル末尾より後ろの領域について 0 で埋めたブロックを前もって
-割り当てておくことは、追記 (append) の作業負荷を最適化するのに
-有用である。
-ファイルサイズが
-.IR offset + len
-よりも小さい場合であっても、ブロックの前もっての割り当てにより
-.RB ( stat (2)
-が返す) ファイルサイズは変更されることはない。
-.\"
-.\" Note from Amit Arora:
-.\" There were few more flags which were discussed, but none of
-.\" them have been finalized upon. Here are these flags:
-.\" FA_FL_DEALLOC, FA_FL_DEL_DATA, FA_FL_ERR_FREE, FA_FL_NO_MTIME,
-.\" FA_FL_NO_CTIME
-.\" All of the above flags were debated upon and we can not say
-.\" if any/which one of these flags will make it to the later kernels.
-.PP
-.B FALLOC_FL_KEEP_SIZE
-フラグが
-.I mode
-に指定されなかった場合、デフォルトの動作は
-.B FALLOC_FL_KEEP_SIZE
-フラグが指定された場合とほとんど同じとなる。
-唯一の違いは、
-.I "offset + len"
-がファイルサイズよりも大きかった場合、呼び出しが成功すると
-ファイルサイズが変更される点である。
-このデフォルトの動作は、ライブラリ関数
-.BR posix_fallocate (3)
-の動作と非常に似ている。これは
-.BR posix_fallocate (3)
-を最適に実装する手段を提供することを目的としているからである。
+\fImode\fP 引き数は、指定された領域に対して実行する操作を指定する。
+サポートされている操作の詳細は以下のサブセクションで説明する。
+.SS ディスク領域の割り当て
+\fBfallocate\fP() のデフォルトの動作 (つまり \fImode\fP が 0 の場合) は、
+\fIoffset\fP と \fIlen\fP で指定された範囲のディスク領域の割り当てと初期化を行う。
+\fIoffset\fP+\fIlen\fP がファイルサイズよりも大きかった場合、
+(\fBstat\fP(2) で報告される) ファイルサイズが変更される。このデフォルトの動作は、
+ライブラリ関数 \fBposix_fallocate\fP(3) の動作と非常に似ている。これは、
+このシステムコールが \fBposix_fallocate\fP(3) を最適に実装する手段を提供する
+ことを目的としているからである。
+
+呼び出しが成功した場合、
+\fIoffset\fP と \fIlen\fP で指定された範囲へのそれ以降の書き込みでは、
+ディスクの領域不足での書き込み失敗が起こらないことが保証される。
+
+\fBFALLOC_FL_KEEP_SIZE\fP フラグが \fImode\fP に指定された場合、このシステムコール
+の動作は似ているが、 \fIoffset\fP+\fIlen\fP がファイルサイズよりも大きい場合で
+あってもファイルサイズは変更されない点が異なる。この場合のファイルの末尾
+よりも後ろの前もって割り当てられた 0 で埋められたブロックは、ファイルへの
+追記を最適化したい場合に役に立つ。
 .PP
-割り当てはブロックサイズ単位で行われるため、
-.BR fallocate ()
-は指定されたよりも大きな領域を割り当てることがある。
+割り当てはブロックサイズ単位で行われるため、 \fBfallocate\fP() は指定されたより
+も大きなディスク領域を割り当てることがある。
+.SS ファイル空間の割り当て解除
+Specifying the \fBFALLOC_FL_PUNCH_HOLE\fP flag (available since Linux 2.6.38)
+in \fImode\fP deallocates space (i.e., creates a hole)  in the byte range
+starting at \fIoffset\fP and continuing for \fIlen\fP bytes.  Within the specified
+range, partial file system blocks are zeroed, and whole file system blocks
+are removed from the file.  After a successful call, subsequent reads from
+this range will return zeroes.
+
+The \fBFALLOC_FL_PUNCH_HOLE\fP flag must be ORed with \fBFALLOC_FL_KEEP_SIZE\fP in
+\fImode\fP; in other words, even when punching off the end of the file, the
+file size (as reported by \fBstat\fP(2))  does not change.
+
+Not all file systems support \fBFALLOC_FL_PUNCH_HOLE\fP; if a file system
+doesn't support the operation, an error is returned.
 .SH 返り値
-.BR fallocate ()
-は成功すると 0 を返し、エラーの場合は \-1 を返す。
+\fBfallocate\fP()  は成功すると 0 を返し、エラーの場合は \-1 を返す。
 .SH エラー
-.TP
-.B EBADF
-.I fd
-が有効なファイルディスクリプタでないか、
-書き込み用としてオープンされていない。
-.TP
-.B EFBIG
-.I offset + len
-がファイルサイズの最大値よりも大きい。
-.TP
-.B EINTR
+.TP 
+\fBEBADF\fP
+\fIfd\fP が有効なファイルディスクリプタでないか、 書き込み用としてオープンされていない。
+.TP 
+\fBEFBIG\fP
+\fIoffset + len\fP がファイルサイズの最大値よりも大きい。
+.TP 
+\fBEINTR\fP
 実行中にシグナルが捕捉された。
-.TP
-.B EINVAL
-.I offset
-が 0 未満であるか、
-.I len
-が 0 以下である。
-.TP
-.B EIO
+.TP 
+\fBEINVAL\fP
+.\" FIXME (raise a kernel bug) Probably the len==0 case should be
+.\" a no-op, rather than an error. That would be consistent with
+.\" similar APIs for the len==0 case.
+.\" See "Re: [PATCH] fallocate.2: add FALLOC_FL_PUNCH_HOLE flag definition"
+.\" 21 Sep 2012
+.\" http://thread.gmane.org/gmane.linux.file-systems/48331/focus=1193526
+\fIoffset\fP が 0 未満だったか、 \fIlen\fP が 0 以下だった。
+.TP 
+\fBEIO\fP
 ファイルシステムとの読み書き中に入出力エラーが発生した。
-.TP
-.B ENODEV
-.I fd
-が通常のファイルかディレクトリを参照していない
-.RI ( fd
-がパイプや FIFO を参照している場合、別のエラーが発生する)。
-.TP
-.B ENOSPC
-.I fd
-が参照するファイルを含むデバイスに十分な空き領域がない。
-.TP
-.B ENOSYS
-.I fd
-が参照するファイルを含むファイルシステムが
-指定された操作をサポートしていない。
-.TP
-.B EOPNOTSUPP
-.I fd
-が参照するファイルを含むファイルシステムが
-.I mode
-をサポートしていない。
+.TP 
+\fBENODEV\fP
+\fIfd\fP が通常のファイルかディレクトリを参照していない (\fIfd\fP がパイプや FIFO を参照している場合、別のエラーが発生する)。
+.TP 
+\fBENOSPC\fP
+\fIfd\fP が参照するファイルを含むデバイスに十分な空き領域がない。
+.TP 
+\fBENOSYS\fP
+このカーネルでは \fBfallocate\fP() は実装されていない。
+.TP 
+\fBEOPNOTSUPP\fP
+\fIfd\fP が参照するファイルを含むファイルシステムが 指定された操作を
+サポートしていない。 \fIfd\fP が参照するファイルを含むファイルシステムが
+\fImode\fP をサポートしていない。
+.TP 
+\fBEPERM\fP
+The file referred to by \fIfd\fP is marked immutable (see \fBchattr\fP(1)).  Or:
+\fImode\fP specifies \fBFALLOC_FL_PUNCH_HOLE\fP and the file referred to by \fIfd\fP
+is marked append\-only (see \fBchattr\fP(1)).
+.TP 
+\fBESPIPE\fP
+\fIfd\fP がパイプか FIFO を参照している。
 .SH バージョン
-.BR fallocate ()
-はカーネル 2.6.23 以降の Linux で利用可能である。
-glibc での対応はバージョン 3.10 以降で行われている。
+\fBfallocate\fP()  はカーネル 2.6.23 以降の Linux で利用可能である。 glibc での対応はバージョン 3.10
+以降で行われている。
 .SH 準拠
-.BR fallocate ()
-は Linux 固有である。
+\fBfallocate\fP()  は Linux 固有である。
 .SH 関連項目
-.BR ftruncate (2),
-.BR posix_fadvise (3),
-.BR posix_fallocate (3)
+\fBftruncate\fP(2), \fBposix_fadvise\fP(3), \fBposix_fallocate\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.40 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。