日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
DIR(5) FreeBSD ファイルフォーマットマニュアル DIR(5) 名称 dir, dirent -- ディレクトリファイルの形式 書式 #include <dirent.h> 解説 ディレクトリは、記憶媒体の基本的な詳細を覆い隠しながらファイルをグループ 化する便利で階層的な方法を提供しています。ディレクトリファイルは、その inode(5) エントリのフラグによって、普通のファイルと区別されます。それは、 それぞれ、ファイルとファイル自体へのポインタに関する情報を含んでいるレ コード (ディレクトリエントリ) から成ります。ディレクトリエントリは、普通 のファイルと同様に他のディレクトリを含んでいます。そのような入れ子のディ レクトリは、サブディレクトリと呼ばれます。ディレクトリとファイルの階層構 造は、このように形成され、ファイルシステムと呼ばれます (または、ファイル システムツリーと呼ばれます)。 各ディレクトリファイルは、2 つの特別なディレクトリエントリを含んでいま す。1 つは、ドット `.' と呼ばれるディレクトリ自体へのポインタで、もう 1 つは、ドットドット `..' と呼ばれる、その親のディレクトリへのポインタで す。しかしながら、ドットとドットドットは、有効なパス名で、システムのルー トディレクトリ `/' には、親はなく、ドットドットは、ドットのようにそれ自体 を指します。 ファイルシステムノードは、物理的なディスクまたはディスクのような分割され た領域のように、どれがファイルシステムオブジェクトを繋いでいるかに関する 通常のディレクトリファイルです。(mount(2) と mount(8) を参照してくださ い。) ディレクトリエントリの形式は、(直接アプリケーションによってインクルードさ れるべきでない) 次のファイル <sys/dirent.h> に定義されています: #ifndef _SYS_DIRENT_H_ #define _SYS_DIRENT_H_ #include <machine/ansi.h> /* * dirent 構造体は, getdirentries(2) システムコールによって返される * ディレクトリエントリの形式を定義しています. * * ディレクトリエントリには, その inode 番号, エントリの長さ, とエントリに含 * まれている名前の長さを含んでいる, その前の部分に struct dirent があります. * ヌルバイトで 4 バイト境界にパディングされた名前が続きます. すべての名前は, * ヌル文字で終了していることが保証されるます. ディレクトリの名前の最大の * 長さは, MAXNAMLEN です. */ struct dirent { __uint32_t d_fileno; /* エントリのファイル番号 */ __uint16_t d_reclen; /* このレコードの長さ */ __uint8_t d_type; /* ファイルタイプ, 以下参照 */ __uint8_t d_namlen; /* d_name の文字列の長さ */ #ifdef _POSIX_SOURCE char d_name[255 + 1]; /* 名前は, これより長くなっては なりません */ #else #define MAXNAMLEN 255 char d_name[MAXNAMLEN + 1]; /* 名前は, これより長くなっては なりません */ #endif }; /* * ファイルタイプ */ #define DT_UNKNOWN 0 #define DT_FIFO 1 #define DT_CHR 2 #define DT_DIR 4 #define DT_BLK 6 #define DT_REG 8 #define DT_LNK 10 #define DT_SOCK 12 #define DT_WHT 14 /* * stat 構造体タイプとディレクトリタイプの間を変換する. */ #define IFTODT(mode) (((mode) & 0170000) >> 12) #define DTTOIF(dirtype) ((dirtype) << 12) /* * XGENERICXDIRSIZ マクロは, ディレクトリエントリを保持する最小のレコード * 長を与えます. これは, 4 バイト境界に丸められる, d_name フィールドなしで * struct direct の空間の量に加えて, ヌルバイトで終了する名前のための十分な * 空間 (dp->d_namlen+1) を必要とします. */ #define _GENERIC_DIRSIZ(dp) ((sizeof (struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) #ifdef _KERNEL #define GENERIC_DIRSIZ(dp) _GENERIC_DIRSIZ(dp) #endif #endif /* !_SYS_DIRENT_H_ */ 関連項目 fs(5), inode(5) 歴史 dir ファイル形式は、Version 7 AT&T UNIX で登場しました。 バグ struct dirent のメンバ d_type の使用は、FreeBSD 特有であり、移植性があり ません。また、特定のファイルシステム、例えば、cd9660 ファイルシステムで、 失敗するかもしれません。 FreeBSD 11.4 April 19, 1994 FreeBSD 11.4