为什么我的S_ISDIR和S_ISREG会返回正确的目录/文件名?

时间:2017-03-02 21:43:22

标签: c

为什么我的S_ISDIR和S_ISREG会返回正确的目录/文件名?

当我使用我在其他3个目录和文本文件中创建的测试目录运行程序时,只执行Dir的printf()。

componentDidMount

1 个答案:

答案 0 :(得分:0)

很明显你使用了错误的变量。 dirInfo由此行if (lstat(fileName, &dirInfo) < 0)初始化。这就是为什么总是打印Dir。

   if(S_ISDIR(dirInfo.st_mode))
    {
        printf("Dir\n");
    }
    else if(S_ISREG(dirInfo.st_mode))
    {
        printf("File\n");
    }
在Linux上,也许你可以使用dirp->d_type获取类型。阅读this

如果想要使用S_ISREG / S_ISDIR,只需调用lstat即可获得文件状态。