gpt4 book ai didi

c - 为什么 readdir() 将 ".."列为文件之一?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:33 24 4
gpt4 key购买 nike

我只是无法理解为什么 readdir() 将“..”列为目录中的文件之一。
以下是我的代码片段

while((dir = readdir(d)) != NULL)  
{
printf("%s \n", dir->d_name); //It displayed .. once and rest of the time file names
}

最佳答案

... 代表当前目录和父目录,并且出现在所有目录中(见下面的脚注)。 readdir() 不会过滤掉它们,因为它们是目录中的有效条目。您可以执行以下操作自行过滤掉它们。

while((dir = readdir(d)) != NULL)  
{
if (strcmp(dir->d_name, ".") == 0 || strcmp(dir->d_name, "..") == 0) {
continue;
}
printf("%s \n", dir->d_name);
}

注意:从技术上讲,SUSv3 并不要求 ... 实际上存在于所有目录中,但确实要求操作系统实现正确解释它们在路径中遇到时。

关于c - 为什么 readdir() 将 ".."列为文件之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19171429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com