|
> readdirで取得したデータからファイルorディレクトリかの判断方法がわかりません。
readdir が使える処理系なら、stat も使えるでしょう。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int main()
{
struct dirent *p;
struct stat buf;
DIR *dp = opendir(".");
if (dp == NULL)
return 1;
while (p = readdir(dp)) {
if (stat(p->d_name, &buf) < 0)
return 1;
switch (buf.st_mode & S_IFMT) {
case S_IFDIR: printf("[d] %s\n", p->d_name); break;
case S_IFREG: printf("[f] %s\n", p->d_name); break;
default: printf("[x] %s\n", p->d_name); break;
}
}
closedir(dp);
return 0;
}
過去ログに行き、readdir で検索すると、同じようなプログラムが出てきます。
この掲示板は、管理者のメンテナンスが行き届いていて素晴らしいですね。
|