diff --git a/ja_JP.eucJP/man/man2/stat.2 b/ja_JP.eucJP/man/man2/stat.2 index 3239c9352b..0e0489ec9f 100644 --- a/ja_JP.eucJP/man/man2/stat.2 +++ b/ja_JP.eucJP/man/man2/stat.2 @@ -1,270 +1,270 @@ .\" Copyright (c) 1980, 1991, 1993, 1994 .\" 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. .\" .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 .\" %FreeBSD: src/lib/libc/sys/stat.2,v 1.16.2.6 2001/08/31 10:15:15 ru Exp % .\" -.\" $FreeBSD: doc/ja_JP.eucJP/man/man2/stat.2,v 1.5 2001/08/19 07:14:27 horikawa Exp $ +.\" $FreeBSD: doc/ja_JP.eucJP/man/man2/stat.2,v 1.6 2001/09/02 00:05:25 horikawa Exp $ .Dd May 1, 1995 .Dt STAT 2 .Os .Sh 名称 .Nm stat , .Nm lstat , .Nm fstat .Nd ファイルステータスの取得 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn stat "const char *path" "struct stat *sb" .Ft int .Fn lstat "const char *path" "struct stat *sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Sh 解説 .Fn stat 関数は、 .Fa path が指すファイルの情報を取得します。 指定したファイルの読取り権、書込み権、実行権は必要ありません。 しかし、そのファイルへ至るパス名で列挙されたすべてのディレクトリは、 検索可能であることが必要です。 .Pp .Fn lstat は .Fn stat に似ていますが、指定したファイルがシンボリックリンクである場合は異なります。 .Fn lstat はリンクの情報を戻しますが、 .Fn stat はリンクが参照するファイルの情報を返します。 .Pp .Fn fstat は、ファイル記述子 .Fa fd で区別されるオープンファイルについて、上と同じ情報を取得します。 .Pp 引数 .Fa sb は、構造体 .Fn stat へのポインタです。これは、 .Aq Pa sys/stat.h (下記参照) で定義され、ファイルに関する情報を保持します。 .Bd -literal struct stat { dev_t st_dev; /* inode のデバイス */ ino_t st_ino; /* inode 番号 */ mode_t st_mode; /* inode 保護モード */ nlink_t st_nlink; /* ハードリンク数 */ uid_t st_uid; /* ファイル所有者のユーザ ID */ gid_t st_gid; /* ファイルグループのグループ ID */ dev_t st_rdev; /* デバイスタイプ */ #ifndef _POSIX_SOURCE struct timespec st_atimespec; /* 最後のアクセス時刻 */ struct timespec st_mtimespec; /* 最後のデータ修正時刻 */ struct timespec st_ctimespec; /* 最後のファイルステータス修正時刻 */ #else time_t st_atime; /* 最後のアクセス時刻 */ long st_atimensec; /* 最後のアクセス時刻のナノ秒 */ time_t st_mtime; /* 最後のデータ修正時刻 */ long st_mtimensec; /* 最後のデータ修正時刻のナノ秒 */ time_t st_ctime; /* 最後のファイルステータス修正時刻 */ long st_ctimensec; /* 最後のファイルステータス修正時刻のナノ秒 */ #endif off_t st_size; /* バイト単位のファイルの大きさ */ int64_t st_blocks; /* ファイルに割り当てられたブロック数 */ u_int32_t st_blksize; /* 入出力に最適なブロックサイズ */ u_int32_t st_flags; /* ファイルに対するユーザ定義フラグ */ u_int32_t st_gen; /* ファイル生成番号 */ }; .Ed .Pp .Fa struct stat の時刻に関するフィールドは、以下のとおりです。 .Bl -tag -width XXXst_mtime .It st_atime ファイルのデータが最後にアクセスされた時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr read 2 システムコールで変更されます。 .It st_mtime ファイルのデータが最後に修正された時刻。 .Xr mknod 2 , .Xr utimes 2 , .Xr write 2 システムコールで変更されます。 .It st_ctime ファイルステータスが最後に変更された時刻 (inode データの修正)。 .Xr chmod 2 , .Xr chown 2 , .Xr link 2 , .Xr mknod 2 , .Xr rename 2 , .Xr unlink 2 , .Xr utimes 2 , .Xr write 2 システムコールで変更されます。 .El .Pp .Dv _POSIX_SOURCE が定義されていない場合、時刻に関するフィールドは以下のように定義されます。 .Bd -literal #ifndef _POSIX_SOURCE #define st_atime st_atimespec.tv_sec #define st_mtime st_mtimespec.tv_sec #define st_ctime st_ctimespec.tv_sec #endif .Ed .Pp .Fa struct stat のサイズに関するフィールドは、以下のとおりです。 .Bl -tag -width XXXst_blksize .It st_blksize ファイルの最適な入出力ブロックサイズ。 .It st_blocks ファイルに 512 バイト単位で割り当てられたブロックの実際の数。 短いシンボリックリンクが i ノードに保持されている場合、この数値が 0 になることがあります。 .El .Pp ステータス情報ワード .Fa st_mode には、以下のようなビットがあります。 .Bd -literal #define S_IFMT 0170000 /* ファイルのタイプ */ #define S_IFIFO 0010000 /* 名前付きパイプ (fifo) */ #define S_IFCHR 0020000 /* キャラクタ型特殊ファイル */ #define S_IFDIR 0040000 /* ディレクトリ */ -#define S_IFBLK 0060000 /* ブロック方特殊ファイル */ +#define S_IFBLK 0060000 /* ブロック型特殊ファイル */ #define S_IFREG 0100000 /* 通常 */ #define S_IFLNK 0120000 /* シンボリックリンク */ #define S_IFSOCK 0140000 /* ソケット */ #define S_IFWHT 0160000 /* ホワイトアウト */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* 使用後にもスワップされたテキストを保存 */ #define S_IRUSR 0000400 /* 読み込み権限の所有者 */ #define S_IWUSR 0000200 /* 書き込み権限の所有者 */ #define S_IXUSR 0000100 /* 実行/検索権限の所有者 */ .Ed アクセスモードのリストについては、 .Aq Pa sys/stat.h , .Xr access 2 , .Xr chmod 2 を参照してください。 .Sh 戻り値 問題なく終了すると 0 が戻されます。 問題が発生すると -1 が戻され、 .Va errno にそのエラーを示す値が設定されます。 .Sh 互換性 以前のバージョンのシステムでは、 .Li st_dev , .Li st_uid , .Li st_gid , .Li st_rdev , .Li st_size , .Li st_blksize , .Li st_blocks フィールドに別のタイプを使用していました。 .Sh エラー .Fn stat と .Fn lstat は、以下のような場合にエラーとなります。 .Bl -tag -width Er .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er EACCES 指定されたパスには、 検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EFAULT .Fa sb か .Em name は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムでの読み書き中に入出力エラーが発生しました。 .El .Pp .Fn fstat は、以下のような場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が、有効な記述子ではありません。 .It Bq Er EFAULT .Fa sb は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Sh 関連項目 .Xr access 2 , .Xr chmod 2 , .Xr chown 2 , .Xr utimes 2 , .Xr symlink 7 .Sh バグ .Fn fstat をソケット (およびパイプ) に適用すると、ブロックサイズフィールド、 および固有デバイスと i ノード番号以外に 0 の入ったバッファが戻されます。 .Sh 規格 .Fn stat 関数呼び出しと .Fn fstat 関数呼び出しは、 .St -p1003.1-90 に準拠しています。 .Sh 歴史 .Fn stat 関数呼び出しと .Fn fstat 関数呼び出しは、 .At v7 で登場しました。 .Fn lstat 関数呼び出しは .Bx 4.2 で登場しました。 .\" Amended by N.Kumagai 2000-3-18