OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man2 / stat.2
index 36b80eb..690cd7d 100644 (file)
@@ -1,10 +1,9 @@
-'\" t
-.\" Hey Emacs! This file is -*- nroff -*- source.
-.\"
+.\" t
 .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992
 .\" Parts Copyright (c) 1995 Nicolai Langfeldt (janl@ifi.uio.no), 1/1/95
-.\" and Copyright (c) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
+.\" and Copyright (c) 2006, 2007, 2014 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.
@@ -24,6 +23,7 @@
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" Modified by Michael Haardt <michael@moria.de>
 .\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
 .\" 2007-06-08 mtk: Added example program
 .\" 2007-07-05 mtk: Added details on underlying system call interfaces
 .\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.\"
 .\" Japanese Version Copyright (c) 1998-1999 HANATAKA Shinya
 .\" and Copyright (c) 2005-2008 Akihiro MOTOKI
-.\"
 .\" Translated 1998-06-21, HANATAKA Shinya <hanataka@abyss.rim.or.jp>
 .\" Modified 1999-04-16, HANATAKA Shinya
 .\" Updated 2000-01-03, Kentaro Shirakata <argrath@ub32.org>
 .\" Updated 2006-07-21, Akihiro MOTOKI, LDP v2.36
 .\" Updated 2007-06-13, Akihiro MOTOKI, LDP v2.55
 .\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2012-05-29, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-03-26, Akihiro MOTOKI <amotoki@gmail.com>
 .\"
-.\"WORD:       status                  状態
-.\"WORD:       directory               ディレクトリ
-.\"WORD:       open                    オープン
-.\"WORD:       implement               実装
-.\"WORD:       owner                   所有者
-.\"WORD:       group                   グループ
-.\"WORD:       user                    ユーザー
-.\"WORD:       other                   他人
-.\"WORD:       hard link count         ハード・リンク数
-.\"WORD:       symbolic link           シンボリック・リンク
-.\"WORD:       socket                  ソケット
-.\"WORD:       device                  デバイス
-.\"WORD:       sticky bit              スティッキー・ビット
-.\"WORD:       mandatory locking       強制ロック
-.\"
-.TH STAT 2 2010-12-03 "Linux" "Linux Programmer's Manual"
+.TH STAT 2 2014\-08\-19 Linux "Linux Programmer's Manual"
 .SH 名前
-stat, fstat, lstat \- ファイルの状態を取得する
+stat, fstat, lstat, fstatat \- ファイルの状態を取得する
 .SH 書式
-.B #include <sys/types.h>
+.nf
+\fB#include <sys/types.h>\fP
 .br
-.B #include <sys/stat.h>
+\fB#include <sys/stat.h>\fP
 .br
-.B #include <unistd.h>
+\fB#include <unistd.h>\fP
 .sp
-.BI "int stat(const char *" path ", struct stat *" buf );
+\fBint stat(const char *\fP\fIpathname\fP\fB, struct stat *\fP\fIbuf\fP\fB);\fP
 .br
-.BI "int fstat(int " fd ", struct stat *" buf );
+\fBint fstat(int \fP\fIfd\fP\fB, struct stat *\fP\fIbuf\fP\fB);\fP
 .br
-.BI "int lstat(const char *" path ", struct stat *" buf );
+\fBint lstat(const char *\fP\fIpathname\fP\fB, struct stat *\fP\fIbuf\fP\fB);\fP
+.sp
+\fB#include <fcntl.h>           \fP/* AT_* 定数の定義 */
+\fB#include <sys/stat.h>\fP
+.sp
+\fBint fstatat(int \fP\fIdirfd\fP\fB, const char *\fP\fIpathname\fP\fB, struct stat *\fP\fIbuf\fP\fB,\fP
+\fB            int \fP\fIflags\fP\fB);\fP
+.fi
 .sp
 .in -4n
-glibc 向けの機能検査マクロの要件
-.RB ( feature_test_macros (7)
-参照):
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
 .in
+.ad l
+.PD 0
 .sp
-.BR lstat ():
-_BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500
+\fBlstat\fP():
+.RS 4
+/* glibc 2.19 以前 */ _BSD_SOURCE ||
+.br
+/* glibc 2.20 以降 */_DEFAULT_SOURCE ||
+.br
+_XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
+.br
+|| /* glibc 2.10 以降: */ _POSIX_C_SOURCE\ >=\ 200112L
+.RE
+.sp
+\fBfstatat\fP():
+.PD 0
+.ad l
+.RS 4
+.TP  4
+glibc 2.10 以降:
+_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
+.TP 
+glibc 2.10 より前:
+_ATFILE_SOURCE
+.RE
+.PD
+.ad
 .SH 説明
 .PP
-これらの関数はファイルについての情報を返す。
-ファイルそのものに対するアクセス許可は必要としないが、
-\(em
-.BR stat ()
-と
-.BR lstat ()
-の場合には
-\(em
-そのファイルへ至る
-.I path
+これらの関数は、ファイルについての情報を \fIstat\fP が指すバッファーに格納して返す。 ファイルそのものに対するアクセス許可は必要としないが、
+\(em\fBstat\fP(), \fBfstatat\fP(), \fBlstat\fP() の場合には \(emそのファイルへ至る \fIpathname\fP
 を構成する全てのディレクトリに対する実行 (検索) 許可が必要である。
 .PP
-.BR stat ()
-は
-.I path
-で指定されたファイルの状態を取得して
-.I buf
-へ格納する。
-
-.BR lstat ()
-は
-.BR stat ()
-と同じであるが、
-.I path
-がシンボリックリンクの場合、リンクが参照しているファイルではなく、
-リンク自身の状態を取得する点が異なる。
-
-.BR fstat ()
-は
-.BR stat ()
-と同じだが、
-状態を取得するファイルをファイル・ディスクリプタ
-.I fd
-で指定する。
+\fBstat\fP() と \fBfstatat\fP() は \fIpathname\fP が指すファイルに関する情報を取得する。 \fBfstatat\fP()
+の違いについては後で説明する。
+
+\fBlstat\fP()  は \fBstat\fP()  と同じであるが、 \fIpathnames\fP
+がシンボリックリンクの場合、リンクが参照しているファイルではなく、 リンク自身の状態を返す点が異なる。
+
+\fBfstat\fP()  は \fBstat\fP()  と同じだが、 状態を取得するファイルをファイルディスクリプター \fIfd\fP で指定する点が異なる。
 .PP
-これらのシステムコールはいずれも、結果を
-.I stat
-構造体に入れて返す。
-.I stat
-構造体には以下のフィールドが含まれている:
+これらのシステムコールはいずれも、結果を \fIstat\fP 構造体に入れて返す。 \fIstat\fP 構造体には以下のフィールドが含まれている:
 .PP
 .in +4n
 .nf
@@ -142,404 +138,382 @@ struct stat {
     ino_t     st_ino;     /* inode 番号 */
     mode_t    st_mode;    /* アクセス保護 */
     nlink_t   st_nlink;   /* ハードリンクの数 */
-    uid_t     st_uid;     /* 所有者のユーザ ID */
+    uid_t     st_uid;     /* 所有者のユーザ ID */
     gid_t     st_gid;     /* 所有者のグループ ID */
     dev_t     st_rdev;    /* デバイス ID (特殊ファイルの場合) */
     off_t     st_size;    /* 全体のサイズ (バイト単位) */
     blksize_t st_blksize; /* ファイルシステム I/O での
                              ブロックサイズ */
     blkcnt_t  st_blocks;  /* 割り当てられた 512B のブロック数 */
-    time_t    st_atime;   /* 最終アクセス時刻 */
-    time_t    st_mtime;   /* 最終修正時刻 */
-    time_t    st_ctime;   /* 最終状態変更時刻 */
+};
+
+    /* Linux 2.6 以降では、カーネルは以下のタイムスタンプ
+       フィールドでナノ秒の精度をサポートしている。
+       Linux 2.6 より前のバージョンでの詳細は
+       下記の「注意」を参照。 */
+
+    struct timespec st_atim;  /* 最終アクセス時刻 */
+    struct timespec st_mtim;  /* 最終修正時刻 */
+    struct timespec st_ctim;  /* 最終状態変更時刻 */
+
+#define st_atime st_atim.tv_sec      /* 後方互換性 */
+#define st_mtime st_mtim.tv_sec
+#define st_ctime st_ctim.tv_sec
 };
 .fi
 .in
-.PP
-.I st_dev
\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81¯ã\80\81ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81\8cå­\98å\9c¨ã\81\99ã\82\8bã\83\87ã\83\90ã\82¤ã\82¹ã\82\92示ã\81\99
-(マクロ
-.BR major (3),
-.BR minor (3)
+
+\fI注意:\fP \fIstat\fP 構造体のフィールドの順序はアーキテクチャーにより様々である。
\81¾ã\81\9fã\80\81ä¸\8aè¨\98ã\81®å®\9a義ã\81§ã\81¯ã\80\81ã\83\95ã\82£ã\83¼ã\83«ã\83\89é\96\93ã\81«å­\98å\9c¨ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81\82ã\82\8bã\83\91ã\83\87ã\82£ã\83³ã\82°ã\83\90ã\82¤ã\83\88ã\81¯æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\83\91ã\83\87ã\82£ã\83³ã\82°ã\83\90ã\82¤ã\83\88ã\81¯ã\82¢ã\83¼ã\82­ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ã\82\88ã\81£ã\81¦ã\82\82ç\95°ã\81ªã\82\8bã\80\82詳細ã\82\92ç\9f¥ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\81¯
+glibc とカーネルのソースを調べてほしい。
+
+\fIst_dev\fP フィールドは、このファイルが存在するデバイスを示す (マクロ \fBmajor\fP(3), \fBminor\fP(3)
 は、このフィールドのデバイス ID を分解するのに役立つだろう)。
 
-.I st_rdev
-フィールドは、このファイル (inode) が表すデバイスを示す。
-
-.I st_size
-フィールドは、(通常のファイルかシンボリックリンクの場合に)
-ファイルの大きさをバイト単位で示す。
-シンボリックリンクの大きさは、シンボリックリンクに含まれている
-パス名の長さ (最後の NULL バイトは含まない) である。
-
-.I st_blocks
-フィールドは、ファイルの大きさを 512 バイトのブロックサイズ単位で示す
-フィールドは、ファイルに割り当てされたブロック数を 512 バイト単位で示す。
-(ファイルに穴があるような場合、この値は
-.IR st_size /512
-より小さくなることもある)。
-
-.I st_blksize
-フィールドは、効率的にファイル・システム I/O ができる「好ましい」
-ブロックサイズを示す (もっと小さい単位でファイルに書き込みを行うと、
-読み出し--修正--再書き込みといった非効率な動作になってしまうかもしれない)。
+\fIst_rdev\fP フィールドは、このファイル (inode) が表すデバイスを示す。
+
+\fIst_size\fP フィールドは、(通常のファイルかシンボリックリンクの場合に)
+ファイルの大きさをバイト単位で示す。 シンボリックリンクの大きさは、
+シンボリックリンクに含まれている パス名の長さ (終端のヌルバイトは含まない)
+である。
+
+\fIst_blocks\fP フィールドは、ファイルの大きさを 512 バイトのブロックサイズ単位で示す フィールドは、ファイルに割り当てされたブロック数を
+512 バイト単位で示す。 (ファイルに穴があるような場合、この値は \fIst_size\fP/512 より小さくなることもある)。
+
+\fIst_blksize\fP フィールドは、効率的にファイルシステム I/O ができる「好ましい」 ブロックサイズを示す
+(もっと小さい単位でファイルに書き込みを行うと、 読み出し\-\-修正\-\-再書き込みといった非効率な動作になってしまうかもしれない)。
+.PP
+全ての Linux のファイルシステムが全ての時間フィールドを 実装しているわけではない。 ファイルやディレクトリのアクセスが \fIst_atime\fP
+フィールドを更新しないようなかたちでマウントできるファイルシステムもある。 (\fBmount\fP(8)  の \fInoatime\fP,
+\fInodiratime\fP, \fIrelatime\fP や \fBmount\fP(2)  の関連する情報を参照)。 また、ファイルが \fBO_NOATIME\fP
+付きでオープンされている場合には \fIst_atime\fP は更新されない。 \fBopen\fP(2)  参照。
+
+\fIst_atime\fP フィールドはファイルアクセスがあった場合に変更される (例えば、 \fBexecve\fP(2), \fBmknod\fP(2),
+\fBpipe\fP(2), \fButime\fP(2)  を使用した場合や \fBread\fP(2)  で 1 バイト以上読み込んだ場合など)。
+\fBmmap\fP(2)  などの他のルーチンでは、 \fIst_atime\fP は更新されることもあれば、そうでない場合もある。
+
+\fIst_mtime\fP フィールドは、ファイルが修正された場合に変更される (例えば、 \fBmknod\fP(2), \fBtruncate\fP(2),
+\fButime\fP(2)  を使用した場合や \fBwrite\fP(2)  で 1 バイト以上書き込みをした場合など)。 さらに、ディレクトリの
+\fIst_mtime\fP は、そのディレクトリで ファイルが作成されたり削除されたりすると変更される。 \fIst_mtime\fP フィールドは
+所有者やグループやハードリンク数やモードの変更では変更 \fIされない。\fP
+
+\fIst_ctime\fP フィールドは書き込みや inode 情報 (所有者、グループ、リンク数、モードなど) の 設定によって変更される。
 .PP
-全ての Linux のファイル・システムが全ての時間フィールドを
-実装しているわけではない。
-ファイルやディレクトリのアクセスが
-.I st_atime
-フィールドを更新しないようなかたちでマウントできるファイルシステムもある。
-.RB ( mount (8)
-の
-.IR noatime ,
-.IR nodiratime ,
-.I relatime
-や
-.BR mount (2)
-の関連する情報を参照)。
-また、ファイルが
-.B O_NOATIME
-付きでオープンされている場合には
-.I st_atime
-は更新されない。
-.BR open (2)
-参照。
-
-.I st_atime
-フィールドはファイルアクセスがあった場合に変更される
-(例えば、
-.BR execve (2),
-.BR mknod (2),
-.BR pipe (2),
-.BR utime (2)
-を使用した場合や
-.BR read (2)
-で 1 バイト以上読み込んだ場合など)。
-.BR mmap (2)
-などの他のルーチンでは、
-.I st_atime
-は更新されることもあれば、そうでない場合もある。
-
-.I st_mtime
-フィールドは、ファイルが修正された場合に変更される
-(例えば、
-.BR mknod (2),
-.BR truncate (2),
-.BR utime (2)
-を使用した場合や
-.BR write (2)
-で 1 バイト以上書き込みをした場合など)。
-さらに、ディレクトリの
-.I st_mtime
-は、そのディレクトリで
-ファイルが作成されたり削除されたりすると変更される。
-.I st_mtime
-フィールドは
-所有者やグループやハード・リンク数やモードの変更では変更
-.I されない。
-
-.I st_ctime
-フィールドは書き込みや inode 情報
-(所有者、グループ、リンク数、モードなど) の
-設定によって変更される。
+以下のマスク値が \fIst_mode\fP フィールドのファイル種別の検査用に定義されている。
+.in +4n
+.TS
+lB l l.
+S_IFMT 0170000 ファイル種別を示すビット領域を表すビットマスク
+
+S_IFSOCK       0140000 ソケット
+S_IFLNK        0120000 シンボリックリンク
+S_IFREG        0100000 通常のファイル
+S_IFBLK        0060000 ブロックデバイス
+S_IFDIR        0040000 ディレクトリ
+S_IFCHR        0020000 キャラクターデバイス
+S_IFIFO        0010000 FIFO
+.TE
+.in
 .PP
-以下の POSIX マクロは、
-.I st_mode
-フィールド
-で使用されるファイル種別のチェックのために定義されている :
+したがって、(例えば) 通常のファイルかどうかを検査するには、以下のようにすればよい。
+
+.nf
+.in +4n
+stat(pathname, &sb);
+if ((sb.st_mode & S_IFMT) == S_IFREG) {
+    /* Handle regular file */
+}
+.in
+.fi
+.PP
+上記の形の検査はよくあるので、 POSIX では以下のマクロが定義されており、 \fIst_mode\fP
+のファイル種別の検査をより簡単に書けるようになっている。
 .RS 4
-.TP 1.2i
-.BR S_ISREG (m)
+.TP  1.2i
+\fBS_ISREG\fP(m)
 通常のファイルか?
-.TP
-.BR S_ISDIR (m)
+.TP 
+\fBS_ISDIR\fP(m)
 ディレクトリか?
-.TP
-.BR S_ISCHR (m)
\82­ã\83£ã\83©ã\82¯ã\82¿ã\83¼ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8b?
-.TP
-.BR S_ISBLK (m)
\83\96ã\83­ã\83\83ã\82¯ã\83»ã\83\87ã\83\90ã\82¤ã\82¹ã\81\8b?
-.TP
-.BR S_ISFIFO (m)
+.TP 
+\fBS_ISCHR\fP(m)
+キャラクターデバイスか?
+.TP 
+\fBS_ISBLK\fP(m)
+ブロックデバイスか?
+.TP 
+\fBS_ISFIFO\fP(m)
 FIFO (名前付きパイプ) か?
-.TP
-.BR S_ISLNK (m)
\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83»ã\83ªã\83³ã\82¯ã\81\8b? (POSIX.1-1996 にはない)
-.TP
-.BR S_ISSOCK (m)
-ソケットか? (POSIX.1-1996 にはない)
+.TP 
+\fBS_ISLNK\fP(m)
\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81\8b? (POSIX.1\-1996 にはない)
+.TP 
+\fBS_ISSOCK\fP(m)
+ソケットか? (POSIX.1\-1996 にはない)
 .RE
 .PP
-以下のフラグが
-.I st_mode
-フィールド用に定義されている:
+上で挙げたコードは以下のように書き換えることができる。
+
+.nf
+.in +4n
+stat(pathname, &sb);
+if (S_ISREG(sb.st_mode)) {
+    /* Handle regular file */
+}
+.in
+.fi
+.PP
+上記のほとんどのファイル種別検査マクロの定義は、 機能検査マクロ \fB_BSD_SOURCE\fP (glibc 2.19 以前の場合)、
+\fB_SVID_SOURCE\fP (glibc 2.19 以前の場合)、 \fB_DEFAULT_SOURCE\fP (glibc 2.20 以降の場合)
+のいずれかが定義されている場合に公開される。 さらに、 \fBS_IFSOCK\fP と \fBS_ISSOCK\fP 以外の上記のすべてのマクロの定義は
+\fB_XOPEN_SOURCE\fP が定義されている場合にも公開される。 \fBS_IFSOCK\fP の定義は \fB_XOPEN_SOURCE\fP が値 500
+以上で定義された場合にも公開される。
+
+\fBS_ISSOCK\fP() の定義が公開されるのは以下の機能検査マクロが定義されている場合である: \fB_BSD_SOURCE\fP (glibc 2.19
+以前の場合)、 \fB_DEFAULT_SOURCE\fP (glibc 2.20 以降の場合)、 値 500 以上の \fB_XOPEN_SOURCE\fP、
+値が 200112L 以上の \fB_POSIX_C_SOURCE\fP。
+.PP
+以下のマスク値が \fIst_mode\fP フィールドのファイルのアクセス許可の検査用に定義されている。
 .in +4n
 .TS
 lB l l.
-S_IFMT 0170000 ファイル種別を示すビット領域を表すビットマスク
-S_IFSOCK       0140000 ソケット
-S_IFLNK        0120000 シンボリック・リンク
-S_IFREG        0100000 通常のファイル
-S_IFBLK        0060000 ブロック・デバイス
-S_IFDIR        0040000 ディレクトリ
-S_IFCHR        0020000 キャラクター・デバイス
-S_IFIFO        0010000 FIFO
-S_ISUID        0004000 set-user-ID bit
-S_ISGID        0002000 set-group-ID bit (下記参照)
-S_ISVTX        0001000 スティッキー・ビット (下記参照)
-S_IRWXU        00700   ファイル所有者のアクセス許可用のビットマスク
-S_IRUSR        00400   所有者の読み込み許可
-S_IWUSR        00200   所有者の書き込み許可
-S_IXUSR        00100   所有者の実行許可
-S_IRWXG        00070   グループのアクセス許可用のビットマスク
-S_IRGRP        00040   グループの読み込み許可
-S_IWGRP        00020   グループの書き込み許可
-S_IXGRP        00010   グループの実行許可
-S_IRWXO        00007   他人 (others) のアクセス許可用のビットマスク
-S_IROTH        00004   他人の読み込み許可
-S_IWOTH        00002   他人の書き込み許可
-S_IXOTH        00001   他人の実行許可
+S_ISUID        0004000 set\-user\-ID bit
+S_ISGID        0002000 set\-group\-ID bit (下記参照)
+S_ISVTX        0001000 スティッキービット (下記参照)
+
+S_IRWXU          00700 ファイル所有者のアクセス許可用のビットマスク
+S_IRUSR          00400 所有者の読み込み許可
+S_IWUSR          00200 所有者の書き込み許可
+S_IXUSR          00100 所有者の実行許可
+
+S_IRWXG          00070 グループのアクセス許可用のビットマスク
+S_IRGRP          00040 グループの読み込み許可
+S_IWGRP          00020 グループの書き込み許可
+S_IXGRP          00010 グループの実行許可
+
+S_IRWXO          00007 T{
+他人 (others) のアクセス許可用のビットマスク
+T}
+S_IROTH          00004 他人の読み込み許可
+S_IWOTH          00002 他人の書き込み許可
+S_IXOTH          00001 他人の実行許可
 .TE
 .in
 .P
-set-group-ID bit
-.RB ( S_ISGID )
-にはいくつかの特殊な使用法がある:
-ディレクトリに設定した場合には、そのディレクトリが BSD 方式で使用される
-ことを示す。つまり、そのディレクトリに作成されたファイルのグループID は
-作成したプロセスの実効 (effective) グループID ではなく、ディレクトリの
-グループID を継承する。また、そのディレクトリに作成されたディレクトリにも
-.B S_ISGID
-ビットが設定される。グループ実行ビット
-.RB ( S_IXGRP )
-が設定されていないファイルに設定された場合は、
-set-group-ID ビットはファイル/レコードの
-強制的な (mandatory) ロックを表す。
+set\-group\-ID bit (\fBS_ISGID\fP)  にはいくつかの特殊な使用法がある: ディレクトリに設定した場合には、そのディレクトリが
+BSD 方式で使用される ことを示す。つまり、そのディレクトリに作成されたファイルのグループID は 作成したプロセスの実効 (effective)
+グループID ではなく、ディレクトリの グループID を継承する。また、そのディレクトリに作成されたディレクトリにも \fBS_ISGID\fP
+ビットが設定される。グループ実行ビット (\fBS_IXGRP\fP)  が設定されていないファイルに設定された場合は、 set\-group\-ID
+ビットはファイル/レコードの 強制的な (mandatory) ロックを表す。
 .P
-ディレクトリにスティッキービット (S_ISVTX) が設定された場合は、
-そのディレクトリのファイルの名前を変更したり、削除したりできるのは、
-そのファイルの所有者か、そのディレクトリの所有者か、特権プロセス
-だけとなる。
+.\"
+.\"
+ディレクトリにスティッキービット (S_ISVTX) が設定された場合は、 そのディレクトリのファイルの名前を変更したり、削除したりできるのは、
+そのファイルの所有者か、そのディレクトリの所有者か、特権プロセス だけとなる。
+.SS fstatat()
+\fBfstatat\fP() システムコールは \fBstat\fP() と全く同様に動作するが、以下で説明する点が異なる。
+
+指定された \fIpathname\fP が相対パスの場合、 ファイルディスクリプター \fIdirfd\fP が参照するディレクトリに対する相対パスと解釈される
+(\fBstat\fP() に相対パスを渡した場合のように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスではない)。
+
+\fIpathname\fP が相対パスで、 \fIdirfd\fP が特別な値 \fBAT_FDCWD\fP の場合、 (\fBstat\fP(2) と同様に)
+\fIpathname\fP は呼び出したプロセスのカレントワーキングディレクトリに対する相対パスと解釈される。
+
+\fIpathname\fP で指定されたパス名が絶対パスの場合、 \fIdirfd\fP は無視される。
+
+この \fIflags\fP 引き数は下記のフラグの 0 個以上の論理和を取ったものである:
+.TP 
+\fBAT_EMPTY_PATH\fP (Linux 2.6.39 以降)
+.\" commit 65cfc6722361570bfe255698d9cd4dccaf47570d
+.\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed
+\fIpathname\fP が空文字列の場合、 \fIdirfd\fP が参照するファイルに対して操作を行う (\fIdirfd\fP は \fBopen\fP(2) の
+\fBO_PATH\fP フラグを使って取得できる)。 \fBdirfd\fP が \fBAT_FDCWD\fP
+の場合、呼び出しはカレントワーキングディレクトリに対して操作を行う。 この場合、 \fIdirfd\fP
+は、ディレクトリだけでなく、任意のタイプのファイルを参照することができる。 このフラグは Linux 固有であり、その定義を得るには
+\fB_GNU_SOURCE\fP を定義すること。
+.TP 
+\fBAT_NO_AUTOMOUNT\fP (Linux 2.6.38 以降)
+.\" Before glibc 2.16, defining _ATFILE_SOURCE sufficed
+\fIpathname\fP がオートマウントポイントとなっているディレクトリの場合、 \fIpathname\fP の最終 ("basename")
+要素のオートマウントを行わない。 これにより (マウントされるはずの場所ではなく) オートマウントポイントの属性を取得することができる。
+このフラグを使うと、 ディレクトリをスキャンするツールがオートマウントポイントのディレクトリを大量にオートマウントしてしまうのを防ぐことができる。
+マウントポイントがすでにマウントされている場合 \fBAT_NO_AUTOMOUNT\fP フラグは何の効果もない。 このフラグは Linux
+固有であり、その定義を得るには \fB_GNU_SOURCE\fP を定義すること。
+.TP 
+\fBAT_SYMLINK_NOFOLLOW\fP
+(\fBlstat\fP() 同様) \fIpathname\fP がシンボリックリンクの場合リンクの展開を行わず、 リンク自身の情報を返す (デフォルトでは、
+\fBfstatat\fP() は、 \fBstat\fP() と同様に、シンボリックリンクの展開を行う)。
+.PP
+\fBfstatat\fP() の必要性についての説明については \fBopenat\fP(2) を参照。
 .SH 返り値
-成功した場合は 0 を返す。エラーの場合は \-1 を返し、
-.I errno
-に適切な値が設定される。
+成功した場合、0 が返される。 失敗した場合、 \-1 が返され、 \fIerrno\fP に適切な値がセットされる。
 .SH エラー
-.TP
-.B EACCES
-.I path
-が所属するディレクトリとその上位のディレクトリのいずれかに
-対する検索許可がなかった
-.RB ( path_resolution (7)
-も参照のこと)。
-.TP
-.B EBADF
-.I fd
-が不正である。
-.TP
-.B EFAULT
+.TP 
+\fBEACCES\fP
+\fIpathname\fP が所属するディレクトリとその上位のディレクトリのいずれかに 対する検索許可がなかった
+(\fBpath_resolution\fP(7)  も参照のこと)。
+.TP 
+\fBEBADF\fP
+\fIfd\fP が不正である。
+.TP 
+\fBEFAULT\fP
 アドレスが間違っている。
-.TP
-.B ELOOP
-パスを辿る際に解決すべきシンボリック・リンクが多過ぎた。
-.TP
-.B ENAMETOOLONG
-.I path
-が長過ぎる。
-.TP
-.B ENOENT
-.I path
-の構成要素が存在しないか、
-.I path
-が空文字列である。
-.TP
-.B ENOMEM
-カーネルのメモリが足りない。
-.TP
-.B ENOTDIR
-.I path
-の前半部分 (prefix) の構成要素がディレクトリではない。
-.TP
-.B EOVERFLOW
-.RB ( stat ())
-.I path
-が、ファイルサイズを
-.I off_t
-型で表現できないファイルを参照している。
-このエラーが起こるのは、32 ビットプラットフォーム上で
-.I -D_FILE_OFFSET_BITS=64
-を指定せずにコンパイルされたアプリケーションが、ファイルサイズが
-.I (1<31)-1
-ビットを超えるファイルに対して
-.BR stat ()
-を呼び出した場合である。
+.TP 
+\fBELOOP\fP
+パスを辿る際に解決すべきシンボリックリンクが多過ぎた。
+.TP 
+\fBENAMETOOLONG\fP
+\fIpathname\fP が長過ぎる。
+.TP 
+\fBENOENT\fP
+\fIpathname\fP の構成要素が存在しないか、 \fIpathname\fP が空文字列である。
+.TP 
+\fBENOMEM\fP
+カーネルのメモリーが足りない。
+.TP 
+\fBENOTDIR\fP
+\fIpathname\fP の前半部分 (prefix) の構成要素がディレクトリではない。
+.TP 
+\fBEOVERFLOW\fP
+\fIpathname\fP または \fIfd\fP が、ファイルサイズ、inode 番号、ブロック数が
+それぞれ \fIoff_t\fP 型、 \fIino_t\fP 型、 \fIblkcnt_t\fP 型で表現できないファイルを
+参照している。このエラーが起こるのは、例えば、32 ビットプラットフォーム上で
+\fI\-D_FILE_OFFSET_BITS=64\fP を指定せずにコンパイルされたアプリケーションが、
+ファイルサイズが \fI(1<<31)\-1\fP バイトを超えるファイルに対して
+\fBstat\fP() を呼び出した場合である。
+.PP
+\fBfstatat\fP() では以下のエラーも発生することがある。
+.TP 
+\fBEBADF\fP
+\fIdirfd\fP が有効なファイルディスクリプターでない。
+.TP 
+\fBEINVAL\fP
+\fIflags\fP に無効なフラグが指定された。
+.TP 
+\fBENOTDIR\fP
+\fIpathname\fP が相対パスで、 \fIdirfd\fP がディレクトリ以外のファイルを参照しているファイルディスクリプターである。
+.SH バージョン
+\fBfstatat\fP()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポートはバージョン 2.4 で glibc
+に追加された。
 .SH 準拠
-これらのシステムコールは SVr4, 4.3BSD, POSIX.1-2001 に準拠している。
-.BR stat ()
-と
-.BR fstat ()
-コールは SVr4, SVID, POSIX, X/OPEN, 4.3BSD に準拠している。
-.BR lstat ()
-コールは 4.3BSD と SVr4 に準拠している。
-.\" SVr4 には他に
+.\" SVr4 documents additional
 .\" .BR fstat ()
-.\" のエラーとして EINTR, ENOLINK, EOVERFLOW が記載されている。
-.\" SVr4 には他に
+.\" error conditions EINTR, ENOLINK, and EOVERFLOW.  SVr4
+.\" documents additional
 .\" .BR stat ()
-.\" 
+.\" and
 .\" .BR lstat ()
-.\" のエラーとして EINTR, EMULTIHOP, ENOLINK, EOVERFLOW が記載されている。
-
-.I st_blocks
-と
-.I st_blksize
-フィールドの使用はあまり移植性がない。
-(これらのフィールドは BSD によって導入された。
-システムごとに解釈が異なっており、
-NFS マウントの場合には同じシステムでも異なる可能性がある)
+.\" error conditions EINTR, EMULTIHOP, ENOLINK, and EOVERFLOW.
+\fBstat\fP(), \fBfstat\fP(), \fBlstat\fP(): SVr4, 4.3BSD, POSIX.1\-2001, POSIX.1.2008.
+
+\fBfstatat\fP(): POSIX.1\-2008.
+
+POSIX.1\-2001 では、シンボリックリンクに対する \fBlstat\fP() で
+有効な情報を返すように求められていたのは、 \fIstat\fP 構造体の \fIst_size\fP
+と \fIst_mode\fP のファイル種別要素だけであった。
+POSIX.1\-2008 では規定が厳しくなり、 \fBlstat\fP() は \fIst_mode\fP の
+アクセス許可ビット以外の全てのフィールドに有効な情報を返すことが
+求められるようになっている。
+
+\fIst_blocks\fP と \fIst_blksize\fP フィールドの使用はあまり移植性がない
+(これらのフィールドは BSD によって導入された。 システムごとに解釈が
+異なっており、 NFS マウントの場合には同じシステムでも異なる可能性がある)。
+\fI<sys/stat.h>\fP から \fIblkcnt_t\fP の \fIblksize_t\fP 型定義を
+読み込みたい場合は、(\fIどの\fPヘッダーファイルをインクルードするよりも前に)
+\fB_XOPEN_SOURCE\fP を 500 以上の値で定義すること。
 .LP
-POSIX には
-.BR S_IFMT ,
-.BR S_IFSOCK ,
-.BR S_IFLNK ,
-.BR S_IFREG ,
-.BR S_IFBLK ,
-.BR S_IFDIR ,
-.BR S_IFCHR ,
-.BR S_IFIFO ,
-.B S_ISVTX
-ビットについての記述はない。かわりに
-.BR S_ISDIR ()
-のようなマクロを使用するように要求している。
-マクロ
-.BR S_ISLNK ()
-と
-.BR S_ISSOCK ()
-は POSIX.1-1996 にはないが、
-POSIX.1-2001 には両方とも存在する。
-前者は SVID 4 に、後者は SUSv2 に由来している。
+POSIX.1\-1990 には \fBS_IFMT\fP, \fBS_IFSOCK\fP, \fBS_IFLNK\fP, \fBS_IFREG\fP,
+\fBS_IFBLK\fP, \fBS_IFDIR\fP, \fBS_IFCHR\fP, \fBS_IFIFO\fP, \fBS_ISVTX\fP 定数に関する
+記述はなかったが、代わりに \fBS_ISDIR\fP() のようなマクロを使用するように
+要求していた。 \fBS_IF*\fP 定数は POSIX.1\-2001 以降には存在する。
+
+マクロ \fBS_ISLNK\fP() と \fBS_ISSOCK\fP() は POSIX.1\-1996 にはないが、
+POSIX.1\-2001 には両方とも存在する。 前者は SVID 4 に、後者は SUSv2 に
+由来している。
 .LP
-Unix V7 (とその後のシステム) は
-.BR S_IREAD ,
-.BR S_IWRITE ,
-.B S_IEXEC
-を持っており、
-POSIX はその同義語として
-.BR S_IRUSR ,
-.BR S_IWUSR ,
-.B S_IXUSR
-を規定している。
+UNIX\ V7 (とその後のシステム) は \fBS_IREAD\fP, \fBS_IWRITE\fP, \fBS_IEXEC\fP を持っており、
+POSIX はその同義語として \fBS_IRUSR\fP, \fBS_IWUSR\fP, \fBS_IXUSR\fP を規定している。
 .SS 他のシステム
 各種システムで使用されていた(いる)値:
+.ad l
 .TS
 l l l l l.
 16進  名前  ls      8進数 説明
 f000   S_IFMT          170000  ファイル種別フィールドのビットマスク
-0000                   000000  SCO では 使用不能 inode;
-                               BSD では未知のファイル種別;
-                               SVID-v2 と XPG2 では 0 と 0100000 の
-                               両方が普通のファイル
+0000                   000000  T{
+SCO では 使用不能 inode; BSD では不明なファイル種別;
+SVID\-v2 と XPG2 では 0 と 0100000 の両方が通常のファイル
+T}
 1000   S_IFIFO p|      010000  FIFO (名前付きパイプ)
-2000   S_IFCHR c       020000  キャラクタ特殊ファイル (V7)
-3000   S_IFMPC         030000  多重化されたキャラクタ特殊ファイル (V7)
+2000   S_IFCHR c       020000  キャラクタ特殊ファイル (V7)
+3000   S_IFMPC         030000  多重化されたキャラクタ特殊ファイル (V7)
 4000   S_IFDIR d/      040000  ディレクトリ (V7)
-5000   S_IFNAM         050000  XENIX 二つの副型を持つ名前付きの
-                               特殊ファイル
-                               副型は \fIst_rdev\fP の値 1,2 で区別される:
-0001   S_INSEM s       000001  XENIX IFNAMのセマフォー副型
-0002   S_INSHD m       000002  XENIX IFNAMの共有データ副型
+5000   S_IFNAM         050000  T{
+XENIX の二つの副型を持つ名前付きの特殊ファイル
+副型は \fIst_rdev\fP の値 1, 2 で区別される
+T}
+0001   S_INSEM s       000001  XENIX の IFNAM セマフォ副型
+0002   S_INSHD m       000002  XENIX の IFNAM 共有データ副型
 6000   S_IFBLK b       060000  ブロック特殊ファイル (V7)
 7000   S_IFMPB         070000  多重化されたブロック特殊ファイル (V7)
-8000   S_IFREG       100000  通常ファイル (V7)
+8000   S_IFREG \-      100000  通常ファイル (V7)
 9000   S_IFCMP         110000  VxFS 圧縮ファイル
-9000   S_IFNWK n       110000  ネットワーク特殊ファイル (HP-UX)
-a000   S_IFLNK l@      120000  シンボリック・リンク (BSD)
-b000   S_IFSHAD                130000  Solaris ACL のための隠された inode
-                               (ユーザ空間からは見えない)
+9000   S_IFNWK n       110000  ネットワーク特殊ファイル (HP\-UX)
+a000   S_IFLNK l@      120000  シンボリックリンク (BSD)
+b000   S_IFSHAD                130000  T{
+Solaris の ACL 用の隠し inode (ユーザー空間からは見えない)
+T}
 c000   S_IFSOCK        s=      140000  ソケット (BSD; VxFS の "S_IFSOC")
-d000   S_IFDOOR        D>      150000  Solaris ドア・ファイル
-e000   S_IFWHT w%      160000  BSD 空白ファイル (inode を使用しない)
-0200   S_ISVTX         001000  `スティッキー・ビット':使用後も
-                               スワップに残す (V7)
-                               予約 (SVID-v2)
-                               ディレクトリ以外: ファイルをキャッシュ
-                               しない (SunOS)
-                               ディレクトリ: 削除制限フラグ (SVID-v4.2)
-0400   S_ISGID         002000  実行時の set-group-ID (V7)
-                               ディレクトリに対しては GID の伝達に
-                               BSD 方式を使用する
-0400   S_ENFMT         002000  System V ファイル・ロックを強制する
-                               (S_ISGID と共有)
-0800   S_ISUID         004000  実行時の set-user-ID (V7)
-0800   S_CDF           004000  ディレクトリが状況依存ファイル (HP-UX)
+d000   S_IFDOOR        D>      150000  Solaris の door ファイル
+e000   S_IFWHT w%      160000  BSD の空白ファイル (inode を使用しない)
+0200   S_ISVTX         001000  T{
+スティッキービット: 使用後もスワップに残す (V7)
+.br
+予約 (SVID\-v2)
+.br
+ディレクトリ以外: ファイルをキャッシュしない (SunOS)
+.br
+ディレクトリの場合: 削除制限フラグ (SVID\-v4.2)
+T}
+0400   S_ISGID         002000  T{
+実行時の set\-group\-ID (V7)
+.br
+ディレクトリの場合: GID の伝搬に BSD 方式を使用する
+T}
+0400   S_ENFMT         002000  T{
+System V ファイルロックを強制する (S_ISGID と共有)
+T}
+0800   S_ISUID         004000  実行時の set\-user\-ID (V7)
+0800   S_CDF           004000  T{
+ディレクトリがコンテキスト依存ファイル (HP\-UX)
+T}
 .TE
+.ad
 
 スティッキー コマンドは Version 32V AT&T UNIX で登場した。
 .SH 注意
-カーネル 2.5.48 以降では、
-.I stat
-構造体は 3つのファイルのタイムスタンプ関連のフィールドで
-ナノ秒単位の精度に対応している。
-glibc では、各フィールドのナノ秒の情報を
-.I st_atim.tv_nsec
-や
-.I st_atimensec
-といった形で参照できる。
-機能検査マクロ
-.B _BSD_SOURCE
-か
-.B _SVID_SOURCE
-が定義されている場合には
-.I st_atim.tv_nsec
-の形式で、それ以外の場合には
-.I st_atimensec
-の形式となる。
-秒より細かいタイムスタンプをサポートしていないファイルシステムでは、
-これらのナノ秒のフィールドは 0 に設定される。
-.\" As at kernel 2.6.25, XFS and JFS support nanosecond timestamps,
-.\" but ext2, ext3, and Reiserfs do not.
-.\" FIXME . SUSv4 specifies nanosecond timestamps.
-
-Linux では、
-.BR lstat ()
-は一般には自動マウント動作 (automounter action) のきっかけとならないが、
-.BR stat ()
-はきっかけとなる。
-
-.I /proc
-ディレクトリ以下にあるファイルのほとんどでは、
-.BR stat ()
-を呼び出した際に、
-.I st_size
-フィールドにファイルサイズが返されない。
-代わりに
-.I st_size
-フィールドには 0 が返される。
-.SS 背後のカーネル・インタフェース
-時間の経過とともに、
-.I stat
-構造体のサイズが大きくなり、この影響で
-.BR stat ()
-には 3つのバージョンが存在する:
-.IR sys_stat ()
-(スロットは
-.IR __NR_oldstat )、
-.IR sys_newstat ()
-(スロットは
-.IR __NR_stat )、
-.IR sys_stat64 ()
-(カーネル 2.4 で導入; スロットは
-.IR __NR_stat64 ).
-glibc の
-.BR stat ()
-ラッパー関数はこれらの詳細をアプリケーションから隠蔽してくれる。
-具体的には、カーネルが提供しているシステムコールのうち最新のバージョンを
-起動し、古いバイナリの場合には必要に応じて返された情報を再構成 (repack) する。
-.BR fstat ()
-と
-.BR lstat ()
-についても同様である。
+Linux では、 \fBlstat\fP() は一般には自動マウント動作 (automounter action) の
+きっかけとならないが、 \fBstat\fP() はきっかけとなる (\fBfstatat\fP(2) を参照)。
+
+\fI/proc\fP ディレクトリ以下にあるファイルのほとんどでは、 \fBstat\fP()  を呼び出した際に、 \fIst_size\fP
+フィールドにファイルサイズが返されない。 代わりに \fIst_size\fP フィールドには 0 が返される。
+.SS タイムスタンプフィールド
+古いカーネルや古い標準では、ナノ秒精度のタイムスタンプフィールドはサポートされていなかった。 代わりに 3 つの \fItime_t\fP
+型のタイムスタンプフィールド \fIst_atime\fP, \fIst_mtime\fP, and \fIst_ctime\fP があった。これらのフィールドには 1
+秒単位のタイムスタンプが記録されていた。
+
+カーネル 2.5.48 以降では、 \fIstat\fP 構造体は 3 つのファイルのタイムスタンプ関連のフィールドでナノ秒単位の精度に対応している。
+機能検査マクロ \fB_BSD_SOURCE\fP か \fB_SVID_SOURCE\fP が定義された場合に、各タイムスタンプのナノ秒の情報は
+\fIst_atim.tv_nsec\fP という形式の名前で参照できる。 ナノ秒のタイムスタンプは現在では標準化されており、 POSIX.1\-2008
+からである。 バージョン 2.12 以降の glibc では、 \fB_POSIX_C_SOURCE\fP が 200809L 以上の値で定義されるか、
+\fB_XOPEN_SOURCE\fP が 700 以上の値で定義された場合にも、 このナノ秒のタイムスタンプが公開される。
+上記のマクロのいずれも定義されていない場合、ナノ秒の値は \fIst_atimensec\fP という形式の名前で公開される。
+
+.\" commit ef7f38359ea8b3e9c7f2cae9a4d4935f55ca9e80
+ナノ秒のタイムスタンプは XFS, JFS, Btrfs, ext4 でサポートされている (Linux 2.6.23 以降)。
+ナノ秒のタイムスタンプは ext2, ext3, Reiserfs ではサポートされていない。
+サブ秒のタイムスタンプをサポートしていないファイルシステムでは、 ナノ秒のフィールドには値 0 が入る。
+.SS 背後のカーネルインターフェース
 .\"
 .\" A note from Andries Brouwer, July 2007
 .\"
@@ -568,12 +542,16 @@ glibc の
 .\" interface, rather than the libc-kernel interface.
 .\"
 .\" (Note that the details depend on gcc being used as c compiler.)
+時間の経過とともに、 \fIstat\fP 構造体のサイズが大きくなり、この影響で \fBstat\fP()  には 3つのバージョンが存在する:
+\fIsys_stat\fP()  (スロットは \fI__NR_oldstat\fP)、 \fIsys_newstat\fP()  (スロットは
+\fI__NR_stat\fP)、 \fIsys_stat64\fP()  (カーネル 2.4 で導入; スロットは \fI__NR_stat64\fP).  glibc
+の \fBstat\fP()  ラッパー関数はこれらの詳細をアプリケーションから隠蔽してくれる。
+具体的には、カーネルが提供しているシステムコールのうち最新のバージョンを 起動し、古いバイナリの場合には必要に応じて返された情報を再構成
+(repack) する。 \fBfstat\fP()  と \fBlstat\fP()  についても同様である。
+
+glibc の \fBfstatat\fP() ラッパー関数が内部で利用するシステムコールは、実際には \fBfstatat64\fP() である。
 .SH 例
-以下のプログラムは
-.BR stat ()
-を呼び出し、返ってきた
-.I stat
-構造体のフィールドのいくつかを表示する。
+以下のプログラムは \fBstat\fP()  を呼び出し、返ってきた \fIstat\fP 構造体のフィールドのいくつかを表示する。
 .nf
 
 #include <sys/types.h>
@@ -588,7 +566,7 @@ main(int argc, char *argv[])
     struct stat sb;
 
     if (argc != 2) {
-        fprintf(stderr, "Usage: %s <pathname>\\n", argv[0]);
+        fprintf(stderr, "Usage: %s <pathname>\en", argv[0]);
         exit(EXIT_FAILURE);
     }
 
@@ -600,30 +578,30 @@ main(int argc, char *argv[])
     printf("File type:                ");
 
     switch (sb.st_mode & S_IFMT) {
-    case S_IFBLK:  printf("block device\\n");            break;
-    case S_IFCHR:  printf("character device\\n");        break;
-    case S_IFDIR:  printf("directory\\n");               break;
-    case S_IFIFO:  printf("FIFO/pipe\\n");               break;
-    case S_IFLNK:  printf("symlink\\n");                 break;
-    case S_IFREG:  printf("regular file\\n");            break;
-    case S_IFSOCK: printf("socket\\n");                  break;
-    default:       printf("unknown?\\n");                break;
+    case S_IFBLK:  printf("block device\en");            break;
+    case S_IFCHR:  printf("character device\en");        break;
+    case S_IFDIR:  printf("directory\en");               break;
+    case S_IFIFO:  printf("FIFO/pipe\en");               break;
+    case S_IFLNK:  printf("symlink\en");                 break;
+    case S_IFREG:  printf("regular file\en");            break;
+    case S_IFSOCK: printf("socket\en");                  break;
+    default:       printf("unknown?\en");                break;
     }
 
-    printf("I\-node number:            %ld\\n", (long) sb.st_ino);
+    printf("I\-node number:            %ld\en", (long) sb.st_ino);
 
-    printf("Mode:                     %lo (octal)\\n",
+    printf("Mode:                     %lo (octal)\en",
             (unsigned long) sb.st_mode);
 
-    printf("Link count:               %ld\\n", (long) sb.st_nlink);
-    printf("Ownership:                UID=%ld   GID=%ld\\n",
+    printf("Link count:               %ld\en", (long) sb.st_nlink);
+    printf("Ownership:                UID=%ld   GID=%ld\en",
             (long) sb.st_uid, (long) sb.st_gid);
 
-    printf("Preferred I/O block size: %ld bytes\\n",
+    printf("Preferred I/O block size: %ld bytes\en",
             (long) sb.st_blksize);
-    printf("File size:                %lld bytes\\n",
+    printf("File size:                %lld bytes\en",
             (long long) sb.st_size);
-    printf("Blocks allocated:         %lld\\n",
+    printf("Blocks allocated:         %lld\en",
             (long long) sb.st_blocks);
 
     printf("Last status change:       %s", ctime(&sb.st_ctime));
@@ -634,11 +612,9 @@ main(int argc, char *argv[])
 }
 .fi
 .SH 関連項目
-.BR access (2),
-.BR chmod (2),
-.BR chown (2),
-.BR fstatat (2),
-.BR readlink (2),
-.BR utime (2),
-.BR capabilities (7),
-.BR symlink (7)
+\fBls\fP(1), \fBstat\fP(1), \fBaccess\fP(2), \fBchmod\fP(2), \fBchown\fP(2),
+\fBreadlink\fP(2), \fButime\fP(2), \fBcapabilities\fP(7), \fBsymlink\fP(7)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。