readdir()如何排除目录中的.和..
时间: 2024-03-12 20:49:42 浏览: 110
在使用readdir()函数读取目录时,可以通过判断返回的dirent结构体中的d_name字段是否为"."或".."来排除这两个目录。具体实现可以参考以下代码:
```
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
DIR *dir;
struct dirent *ent;
if ((dir = opendir(argv[1])) != NULL) {
while ((ent = readdir(dir)) != NULL) {
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
}
printf("%s\n", ent->d_name);
}
closedir(dir);
} else {
perror("");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
```
在这个示例中,通过使用strcmp()函数比较d_name字段和"."或".."的字符串来判断是否是这两个目录,如果是,则使用continue语句跳过当前循环,否则打印该目录名称。
阅读全文