ディレクトリ内のファイルやディレクトリを列挙するには、dirent.h で定義されている、
を使用します。
readdir
の返すエントリには、カレントディレクトリを示す .
や、親ディレクトリを示す ..
も含まれます。
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *pDir = opendir("/home");
if (pDir == NULL) {
perror("opendir");
return -1;
}
dirent *pDirEnt = NULL;
while ((pDirEnt = readdir(pDir)) != NULL) {
printf("%s\n", pDirEnt->d_name);
}
if (closedir(pDir) != 0) {
perror("closedir");
return -1;
}
}