日本語 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.3-RELEASE-K, 13.0-RELEASE-K から 13.2-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
GLOB(3) FreeBSD ライブラリ関数マニュアル GLOB(3) 名称 glob, globfree -- パターン照合のパス名を生成する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <glob.h> int glob(const char * restrict pattern, int flags, int (*errfunc)(const char *, int), glob_t * restrict pglob); void globfree(glob_t *pglob); 解説 glob() 関数は、シェルによって使用されるファイル名のパターンの照合のための 規則を実装するパス名ジェネレータです。 インクルードファイル <glob.h> は、少なくとも次のフィールドを含んでいる構 造体のタイプ glob_t を定義しています: typedef struct { size_t gl_pathc; /* これまでのパスの合計のカウント */ size_t gl_matchc; /* パターンと一致しているパスのカウント */ size_t gl_offs; /* gl_pathv の始めで予約される */ int gl_flags; /* 返されるフラグ */ char **gl_pathv; /* パターンと一致しているパスのリスト */ } glob_t; 引数 pattern は、展開されるパス名のパターンへのポインタです。glob() 引数 は、パターンとすべてのアクセス可能なパス名を照合して、一致しているパス名 のリストを作成します。パス名にアクセスするために、glob() は、最後を除いて パスのすべての構成要素の検索パーミッションを必要とし、特殊文字 `*', `?' または `[' のいずれかを含んでいる pattern のあらゆるファイル名の構成要素 の各ディレクトリで読み込みパーミッションを必要とします。 glob() 引数は、gl_pathc フィールドに一致しているパス名の数を格納し、 gl_pathv フィールドにパス名へのポインタのリストへのポインタを格納します。 最後のパス名の後の最初のポインタは、NULL です。パターンがいずれのパス名と も一致しないなら、一致しているパスの返される数は、0 に設定されます。 pglob によって指された構造体を作成することは、呼び出し側の責任です。 glob() 関数は、gl_pathv によって指されるメモリを含んで、必要に応じて他の 空間を割り付けます。 引数 flags は、glob() の振る舞いを修正するために使用されます。flags の値 は、<glob.h> で定義された次の値のいずれかのビット単位の包括的な論理和 (OR) です: GLOB_APPEND glob() への前の呼び出し (または複数の呼び出し) からのも のに生成されたパス名を追加します。gl_pathc の値は、この 呼び出しと前の (複数の) 呼び出しによって見つけられる合計 の一致です。パス名は、前の (複数の) 呼び出しによって返さ れるパス名とマージされずに追加されます。呼び出しの間に、 呼び出し側は、GLOB_DOOFFS フラグの設定を変更してはなら ず、GLOB_DOOFFS が設定されているとき、gl_offs の値を変更 してはならず、pglob のために globfree() を (明らかに) 呼 び出してはなりません。 GLOB_DOOFFS gl_offs フィールドを使用します。このフラグが設定されるな ら、gl_offs は、どのくらいの NULL ポインタを gl_pathv フィールドの最初に付け加えるかを指定するために使用されま す。言い換えれば、gl_pathv は、NULL ポインタが続いている gl_pathc パス名のポインタが続いている、gl_offs NULL ポイ ンタを指しています。 GLOB_ERR glob() は、それが、オープンかまたは読み込むことができな いディレクトリに遭遇するとき、返ります。通常、glob() は、一致を見つけ続けます。 GLOB_MARK pattern と一致しているディレクトリである各パス名には、追 加されたスラッシュがあります。 GLOB_NOCHECK pattern があらゆるパス名に一致しないなら、glob() は、1 に設定された合計のパス名の数、0 に設定された一致している パス名の数がある pattern のみから成るリストを返します。 バックスラッシュのエスケープの効果は、返されたパターンに 存在します。 GLOB_NOESCAPE デフォルトで、バックスラッシュ (`\') 文字は、文字のあら ゆる特別な解釈を避けて、パターンの次の文字をエスケープす るために使用されます。GLOB_NOESCAPE が設定されるなら、 バックスラッシュのエスケープは、無効にされます。 GLOB_NOSORT デフォルトで、パス名は、昇順の ASCII 順序でソートされま す。このフラグは、そのソートを防止します (glob() を速め ます)。 また、次の値は、flags に含められます、しかしながら、それらは、IEEE Std 1003.2 (``POSIX.2'') の非標準の拡張です。 GLOB_ALTDIRFUNC pglob 構造体の次の追加のフィールドは、ディレクトリをオー プンし、読み込み、そしてクローズするために、そして、それ らのディレクトリで見つけられる名前に関する stat 情報を取 得するために、使用する glob のための代替の関数で初期化さ れました。 void *(*gl_opendir)(const char * name); struct dirent *(*gl_readdir)(void *); void (*gl_closedir)(void *); int (*gl_lstat)(const char *name, struct stat *st); int (*gl_stat)(const char *name, struct stat *st); この展開は、テープに格納されるディレクトリからグロブ (ファイル名置換) を提供するために restore(8) のようなプ ログラムを許可するために提供されます。 GLOB_BRACE csh(1) のような `{pat,pat,...}' 文字列を展開するパターン 文字列を前処理します。パターン `{}' は、歴史的な理由 (と csh(1) は、find(1) のパターンのタイプを容易にするために 同じことを行う) のために展開されないままにされます。 GLOB_MAGCHAR パターンが、グロブ (ファイル名置換) 文字を含んていたな ら、glob() 関数によって設定します。より詳しい情報につい ては、gl_matchc 構造体のメンバの使用法の説明を参照してく ださい。 GLOB_NOMAGIC は、GLOB_NOCHECK と同じですが、それが特殊文字 ``*'', ``?'' または ``['' のどれも含んでいないなら、それは、 pattern を追加するだけです。GLOB_NOMAGIC は、歴史的な csh(1) のグロブ (ファイル名置換) の振る舞いを実装するこ とを簡素化するために提供され、たぶん、他にどこでも使用さ れるべきではありません。 GLOB_TILDE `~' で始まるパターンをユーザ名のホームディレクトリに展開 します。 GLOB_LIMIT 返されたパス名の合計の数を、gl_matchc (デフォルト ARG_MAX) で提供された値に制限します。このオプションは、 `*/../*/..' の長い文字列のような非常に多くの照合に展開す るパターンを通してサービス拒否攻撃を強制することができる プログラムのために設定されるべきです。 検索の間に、オープンすることができない、または読み込みできないディレクト リに遭遇して、errfunc が NULL でないなら、glob() は、(*errfunc)(path, errno) を呼び出しますが、GLOB_ERR フラグは、これが起こるとき、ただちに返 ります。 errfunc が 0 以外で返るなら、glob() は、スキャンを停止して、すでに一致し ているあらゆるパスを反映するために gl_pathc と gl_pathv を設定した後に GLOB_ABORTED を返します。呼び出されるなら、errfunc の返り値に関わらず、エ ラーに遭遇し、GLOB_ERR が flags に設定されているなら、また、これは、起こ ります。GLOB_ERR が設定されず、errfunc が NULL であるか、または errfunc が 0 を返すかのいずれかであるなら、エラーは、無視されます。 globfree() 関数は、glob() への以前の (複数の) 呼び出しから pglob に関連す るあらゆる空間を解放します。 戻り値 成功して完了すると、glob() は、0 を返します。さらに、pglob のフィールド は、以下に説明された値を含んでいます: gl_pathc は、これまでに、一致しているパス名の合計の数を含んでいま す。これは、GLOB_APPEND が指定されたなら、glob() の以前の呼 び出しから他の一致を含んでいます。 gl_matchc は、glob() の現在の呼び出しの一致しているパス名の数を含んで います。 gl_flags は、pattern が特殊文字 ``*'', ``?'' or ``['' のいずれかを含 んでいたなら、設定されたビット GLOB_MAGCHAR がある flags 引 数のコピーを含み、そうでなければ、クリアされます。 gl_pathv は、一致しているパス名の NULL で終了するリストへのポインタ を含んでいます。しかしながら、gl_pathc が 0 であるなら、 gl_pathv の内容は、未定義です。 glob() が、エラーのために終了するなら、それは、errno を設定し、インクルー ドファイル <glob.h> で定義されている、次の 0 以外の定数の 1 つを返します: GLOB_NOSPACE メモリを割り付ける試みが、失敗したか、または errno が E2BIG であったなら、GLOB_LIMIT は、フラグで指定され、 pglob->gl_matchc またはより多くのパターンが一致しました。 GLOB_ABORTED エラーに遭遇し、GLOB_ERR が、設定されていたか、または (*errfunc)() が、0 以外を返すかのいずれかのために、スキャン は、停止されました。 GLOB_NOMATCH パターンは、パス名と位置しませんでした、そして、 GLOB_NOCHECK は、設定されませんでした。 引数 pglob->gl_pathc と pglob->gl_pathv は、まだ上記に指定されるように設 定されます。 使用例 `ls -l *.c *.h' のおおよその同等物を次のコードで取得することができます: glob_t g; g.gl_offs = 2; glob("*.c", GLOB_DOOFFS, NULL, &g); glob("*.h", GLOB_DOOFFS | GLOB_APPEND, NULL, &g); g.gl_pathv[0] = "ls"; g.gl_pathv[1] = "-l"; execvp("ls", g.gl_pathv); 関連項目 sh(1), fnmatch(3), regex(3) 規格 glob() 関数の現在の実装は、IEEE Std 1003.2 (``POSIX.2'') に適合していませ ん。シンボル式を照合すること、同値類の式と文字クラス式は、サポートされて いません。 フラグ GLOB_ALTDIRFUNC, GLOB_BRACE, GLOB_LIMIT, GLOB_MAGCHAR, GLOB_NOMAGIC と GLOB_TILDE およびフィールド gl_matchc と gl_flags は、 POSIX 標準の拡張であり、厳密な適合のために努めているアプリケーションに よって使用されるべきではありません。 歴史 glob() と globfree() 関数は、4.4BSD ではじめて登場しました。 バグ MAXPATHLEN より長いパターンは、チェックされないのエラーを起こすかもしれま せん。 glob() 引数は、失敗して、ライブラリルーチン stat(2), closedir(3), opendir(3), readdir(3), malloc(3) と free(3) で明記されたエラーのいずれか を errno に設定します。 FreeBSD 11.2 December 20, 2011 FreeBSD 11.2