• ベストアンサー

DIRについて

     DIR *fp; struct dirent *p; fp=opendir(argv[1]); while((p=readdir(fp))!=NULL) といったように、プログラムを組んでいるのですが、 具体的に*fpに入っているもの(指しているもの)は、どのようなものなのでしょうか? *pはdirent構造体を指しているということはわかるのですが、 *fpに関しては、いまいちイメージができないので、 教えていただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • cosmos-kt
  • ベストアンサー率29% (43/147)
回答No.1

opendir関数を調べて見ましょう。 opendirとは、ルートディレクトリ以下のディレクトリ名を入力すると、そのディレクトリへのポインタを出力するとあります。 Unixの場合には、inodeと呼ばれる文字配列が入りますし、MS-DOSや初期のWindowsの場合には、FATやFAT-32から生じる、これまた文字配列が入ります。そんなことですから、もう少し具体化すると、readdirに読み込んでもらうデータ列群を指定するポインタが入るということでもあるのです。これは、逆にwritedirによって出力するためのデータが入っているともいえます。