総合手引 | セクション 3 | English | Deutsch | オプション |
#include <sys/types.h>
#include <dirent.h>
readdir() 関数は、次のディレクトリエントリを指すポインタを返します。 この関数は、ディレクトリの末尾に到達するか、または無効な seekdir() 操作を検出すると NULL を返します。
readdir_r() は、 readdir() と同様の機能を提供しますが、 呼び出し元は結果を格納するためのディレクトリ entry バッファを提供しなければなりません。 読み込みが成功すると result は entry を指し、ディレクトリの末尾に達すると result は NULL に設定されます。 readdir_r() は、成功した場合 0 を返し、そうでなければ失敗を示すエラーナンバを返します。
telldir() 関数は、指定された ディレクトリストリーム に関連付けられている現在の位置を返します。 telldir() が返す値が有効なのは、その値が引き出された元の DIR ポインタ dirp が生きている間だけです。 ディレクトリが閉じられ再び開かれると、 telldir() が返した以前の値はもはや有効ではありません。
seekdir() 関数は、その ディレクトリストリーム に対する次の readdir() 操作の位置を設定します。 新しい位置は、その ディレクトリストリーム と関連付けられているもので、 telldir() 操作が実行されたときに返されるものです。
rewinddir() 関数は、指定された ディレクトリストリーム の位置をそのディレクトリの先頭に戻します。
closedir() 関数は、指定された ディレクトリストリーム を閉じ、 dirp ポインタに関連付けられた構造体を解放します。 処理が成功した場合は 0 を返します。 処理が失敗すると -1 が返され、エラーを示ためにグローバル変数 errno が設定されます。
dirfd() 関数は、指定された ディレクトリストリーム に関連付けられた整数のファイル記述子を返します。 open(2) を参照してください。
ディレクトリでエントリ ``name'' を検索するサンプルコードは次のとおりです。
len = strlen(name); dirp = opendir("."); while ((dp = readdir(dirp)) != NULL) if (dp->d_namlen == len && !strcmp(dp->d_name, name)) { (void)closedir(dirp); return FOUND; } (void)closedir(dirp); return NOT_FOUND;
DIRECTORY (3) | June 4, 1993 |
総合手引 | セクション 3 | English | Deutsch | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | This philosophy, in the hands of amateurs, leads to inexplicably mind-numbing botches like the existence of two programs, “head” and “tail,” which print the first part or the last part of a file, depending. Even though their operations are duals of one another, “head” and “tail” are different programs, written by different authors, and take different options! | ” |
— The Unix Haters' handbook |