Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all
名前
scandirat - ディレクトリのファイルディスクリプタからの相対パスで指定されたディレクトリを走 査する
書式
#define _GNU_SOURCE /* feature_test_macros(7) 参照 */ #include <fcntl.h> /* AT_* 定数の定義 */ #include <dirent.h> int scandirat(int dirfd, const char *dirp, struct dirent ***namelist, int (*filter)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **));
説明
scandirat() システムコールは scandir() と全く同様の動作をする。 差分についてこのマニュアル ページで説明する。 dirp で指定されたパス名が相対パスの場合、ファイルディスクリプタ dirfd が参照するディレクト リからの相対パスと解釈される (これに対して、scandir(3) の場合は、相対パス名は、呼び出した プロセスの カレントワーキングディレクトリからの相対パスと解釈される)。 dirp が相対パスで dirfd が特別な値 AT_FDCWD の場合、 dirp は (scandir(3) と同様に) 呼び出 したプロセスのカレントワーキング ディレクトリからの相対パスと解釈される。 dirp が絶対パスの場合、dirfd は無視される。
返り値
成功した場合は、 scandirat() は選択されたディレクトリエントリ数を返す。 エラーの場合、 -1 が返され、 errno にエラーを示す値が設定される。
エラー
scandir(3) で発生するのと同じエラーが scandirat() でも発生する。 scandirat() では追加で以 下のエラーも発生する: EBADF dirfd が有効なファイルディスクリプタではない。 ENOTDIR dirp が相対パスで、dirfd がディレクトリ以外のファイルを参照している ファイルディス クリプタである。
バージョン
scandirat() は glibc バージョン 2.15 で追加された。
準拠
この関数は GNU による拡張である。
注意
scandirat() が必要な理由については openat(2) を参照すること。
関連項目
openat(2), scandir(3), path_resolution(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。