我想检查一个文件是否存在,并且用户在C ++(Linux,Debian)中对它有读取权限。经过一些研究后,我发现我应该使用stat()来实现这个目标。
struct stat buf;
stat("file", &buf);
cout << buf.st_mode << "\n\n";
当我输出st_mode(根据我的手册应该包含保护信息)时,我得到0
。我不知道如何使用它来解释文件的访问权限。
此外,我不知道如何使用stat()来检查文件是否确实存在。我应该检查stat()是否返回-1
表示错误,这意味着他找不到文件?
答案 0 :(得分:1)
正如您在此处看到的stat当返回“-1”时,您必须查看errno
以查看实际错误是什么,链接中列出了多个错误。我认为access()
是正确的api被称为其他人已经建议的方式。