linux - 使用 stat() 检查文件是否存在以及我们是否具有读取权限

标签 linux stat

我想在 C++(Linux、Debian)中检查文件是否存在以及用户是否具有读取权限。经过一些研究,我发现我应该为此使用 stat()。

struct stat buf;
stat("file", &buf);
cout << buf.st_mode << "\n\n";

当我输出 st_mode(根据我的手册应该包含保护信息)时,我得到 0。我不知道如何使用它来解释文件的访问权限。

我也不知道如何使用 stat() 来检查文件是否确实存在。我是否应该检查 stat() 是否返回 -1 指示错误,这意味着他找不到文件?

最佳答案

正如你在这里看到的stat当返回“-1”时,您必须查看 errno 以查看实际错误是什么,链接中列出了几个错误。顺便说一下,我认为 access() 是正确的 api,正如其他人已经建议的那样。

关于linux - 使用 stat() 检查文件是否存在以及我们是否具有读取权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244460/

相关文章:

permissions - 使用 boost::filesystem/std::filesystem 检查有效权限

macos - Binutils stat 非法选项 -c

c - 在 C 中使用 stat 检查文件是否可执行

linux - 如何在使用 Yocto 构建的嵌入式系统上关闭控制台?

linux - nohup - 不打印所有日志

linux - 升级到 Bind 9.12 后 Windows 客户端损坏

c++ - 以编程方式释放 libstagrab 中的内存

c - Linux 内核中的 major() 和 minor() 函数

linux - 如何在linux bash shell中定义$i?

r - 使用 SNP 等位基因数据为 ACGT 创建概率矩阵