日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




ディレクトリ内のエントリを探します。

形式

#include <dirent.h>

struct dirent *readdir (DIR *dir_pointer);

int readdir_r (DIR *dir_pointer, struct dirent *entry, struct dirent **result);


引数



dir_pointer

オープン・ディレクトリの dir構造体へのポインタ。

entry

指定されたストリームの現在位置にあるディレクトリ・エントリによって初期化される, dirent構造体へのポインタ。

result

実行に成功したときに,entry へのポインタが格納される位置。

説明

readdir関数は, dir_pointer によって指定されるディレクトリ・ストリーム内の現在位置にあるディレクトリ・エントリを表す構造体へのポインタを返し,ディレクトリ・ストリームの位置を次のエントリに設定します。ディレクトリ・ストリームの終端に達すると,NULL ポインタを返します。ディレクトリ・エントリは, <dirent.h>ヘッダ・ファイルに定義されている dirent構造体によって記述されます。

<dirent.h>ヘッダ・ファイルに定義されている DIR型は,ディレクトリ・ストリームを表します。ディレクトリ・ストリームとは,特定のディレクトリ内のすべてのディレクトリ・エントリの順序付きのシーケンスです。ディレクトリ・エントリはファイルを表します。 readdir関数の操作とは非同期的に,ディレクトリのファイルの削除や追加を行うことができます。

readdir関数から返されるポインタは,同じディレクトリ・ストリームに対する別の readdir呼び出しによって上書きすることができるデータをポイントしています。このデータは,他のディレクトリ・ストリームに対する別の readdir呼び出しによって上書きされることはありません。

直前の opendirまたは rewinddir関数の呼び出しの後に,ディレクトリのファイルが削除または追加された場合,その後の readdir関数の呼び出しでは,そのファイルのエントリが返されない可能性があります。

ディレクトリの終端に達したとき,または無効な seekdir操作を検出したとき, readdir関数は null 値を返します。

無効な位置をシークしようと試みると, readdir関数は,次に呼び出されたときに null 値を返します。その前の telldir関数呼び出しが,その位置を返します。

readdir_r関数は, readdirのリエントラントなバージョンです。 dir_pointer に加えて,指定されたストリームの現在のディレクトリ・エントリが返される dirent構造体へのポインタを指定する必要があります。

操作が成功した場合, readdir_rは 0 を返し, result に次の 2 つのポインタのうちのどちらかを格納します。

  • エントリが発見された場合には,entry へのポインタ

  • ディレクトリ・ストリームの終端に達した場合には,NULL ポインタ

entry がポイントするストレージは,少なくとも NAME_MAX + 1 個の要素を含んだ char d_nameメンバの配列を含んでいる direntに十分な大きさでなくてはなりません。

エラーが発生した場合には,エラーの原因を示すエラー値が返されます。

アプリケーションでエラー状況を確認したい場合は, readdirを呼び出しす前に errnoを 0 に設定します。 errnoに 0 以外の値が設定されている場合,エラーが発生しています。


例については, closedirの説明を参照してください。


戻り値

x readdir の実行が成功した場合には, struct dirent 型のオブジェクトへのポインタ。
0 readdir_r の実行が成功しました。
x エラーの場合には,エラー値 ( readdir_r のみ。)
NULL エラーが発生したか,ディレクトリ・ストリームの終端に達しました ( readdir_r のみ)。エラーが発生した場合, errno はその原因を示す値に設定されます。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.