我想在 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/