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

时间:2013-11-27 13:59:56

标签: linux stat

我想检查一个文件是否存在,并且用户在C ++(Linux,Debian)中对它有读取权限。经过一些研究后,我发现我应该使用stat()来实现这个目标。

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

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

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

1 个答案:

答案 0 :(得分:1)

正如您在此处看到的stat当返回“-1”时,您必须查看errno以查看实际错误是什么,链接中列出了多个错误。我认为access()是正确的api被称为其他人已经建议的方式。