名称
pathfind() ― 名前付きディレクトリ内で名前付きファイルを検索
構文
#include <libgen.h>
char *pathfind (const char
*path, const char *name, const char *mode);
説明
pathfind は、ファイル name 用に path の中で名前を付けられたディレクトリを検索します。 path の中で名前を付けられたディレクトリは、コロンで区切られています。 mode は、以下のセット rwxfbcdpugks から選択したオプション文字の文字列です。
| 文字 | 意味 |
|---|
| r | 読み取り可能 |
| w | 書き込み可能 |
| x | 実行可能 |
| f | 通常ファイル |
| b | ブロック型特殊ファイル |
| c | キャラクタ型特殊ファイル |
| d | ディレクトリ |
| p | FIFO (パイプ) |
| u | ユーザー ID ビットを設定 |
| g | グループ ID ビットを設定 |
| k | スティッキービット |
| s | 非ゼロサイズ |
読み取り、書き込み、および実行の各オプションは、現在のプロセスの実ユーザー
ID と実グループ ID (実効 ID ではない) に対してチェックされます。
mode によって指定された特性をすべて備えたファイル name が path によって指定されたディレクトリに見つかった場合、 pathfind は、 path のメンバーの後にスラッシュ文字 (/)
と name が続く文字列へのポインターを返します。
name がスラッシュで始まる場合、それは絶対パス名として扱われ、 path は無視されます。
空の path メンバーは現在のディレクトリとして扱われます。 . は追加されず、最初に一致した name が返されます。
戻り値
一致が見つからない場合、 pathname は空のポインター ((char
*) 0) を返します。
例
PATH 環境変数を使って ls コマンドを見つけるには、次のようにします。
pathfind (getenv ("PATH"), "ls", "rx")
警告
返されたポインターが示す文字列は、 pathfind を後で呼び出したときに再使用される静的領域に保存されます。