c - 如何在 Linux 下的 C 中找到文件路径中子文件夹的权限?

标签 c linux path stat

我正在尝试查找文件路径中具有“其他执行”权限的所有子文件夹。

我已经尝试使用 strtok(path_str,"/") 来打破路径字符串,但是当使用 stat() 的子目录时在我运行的进程的根目录下,出现“不是文件或文件夹”错误。

关于如何克服这个错误有什么建议吗?

最佳答案

如果路径是 "long/path/to/the/file.txt",那么您需要在 "long 上调用 stat() ""long/path""long/path/to""long/path/to/the" .如果您不关心检查这些顺序的顺序,最简单的方法可能是重复使用 strrchr():

char *s;

while (s = strrchr(path, '/'))
{
    *s = 0;
    if (strlen(path) > 0)
        stat(path, &statbuf);
    else
        stat("/", &statbuf);

    /* Do something with statbuf */
}

(特殊大小写用于以 / 开头的路径,以检查根目录本身)。

关于c - 如何在 Linux 下的 C 中找到文件路径中子文件夹的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561082/

相关文章:

c - 输入验证(具有多个值)

algorithm - 在路线规划中应用A*算法?

css - 如何引用另一个文件夹中的图像?

c - 井字棋无敌AI代码问题

c - typedef 内部如何工作?

linux - 使用 cifs 挂载

linux - 如何将文件夹添加到现有 zip 文件中的子文件夹

linux - 如何修复尝试调试简单的 nasm 汇编程序时出现 "sigsegv"的问题

Prolog中的寻路

c - 如何将stdin通过管道传递给 child 并在C中执行猫