【发布时间】:2016-04-28 22:12:06
【问题描述】:
我只想阅读子目录和指向子目录的链接。 使用以下代码,我读取了所有子目录和链接。
struct dirent* de;
DIR* dir = opendir(c_str());
if (!dir) { /* error handling */ }
while (NULL != (de = readdir(dir))) {
if (de->d_type != DT_DIR && de->d_type != DT_LNK)
continue;
// Do something with subdirectory
}
但是如何检查链接是否也指向子目录?我不想阅读整个链接目录来执行此操作。
【问题讨论】:
-
出于什么目的你用 C 和 C++ 标记这个?
-
您在寻找 readlink 吗? linux.die.net/man/3/readlink
-
readlink获取指向的东西的路径,stat用于检查它是否是一个目录? -
在递归遍历时通常会忽略指向目录的符号链接,因为存在重复计数甚至无限循环的危险。 (好吧,实际上并不是无限的,因为
ENAMETOOLONG和ELOOP。)