C ++ / Linux如何获得其他用户的读取权限统计?

时间:2014-03-26 02:10:41

标签: c++ linux permissions

我正在编写一个简单的C ++ Web服务器分配,我想检查该文件是否可被其他用户读取。如果没有,服务器将发回403 Forbidden。

我已经使用statbuf.st_mode stat(FILE,&statbuf),但我不知道如何检索其他用户的读取权限。我知道有&#34; S_IROTH&#34;但我不知道如何使用它。我尝试使用cout<<S_IROTH<<endl;将其打印到终端,它是4但是&#34; FILE&#34;有0440的许可,所以我想我没有打印&#34; FILE&#34;的S_IROTH。

所以我的问题是:如何获得其他用户的读取权限统计? 或者我在概念中犯了什么错误?

谢谢。

1 个答案:

答案 0 :(得分:1)

您需要针对S_IROTH屏蔽文件的模式。此外,您错误地传递了statbuf(并且您应该收到警告)。正确的代码应如下所示:

int result = stat(path, &statbuf);
if (result != 0) {
    return NOT_FOUND;
}
if (!(statbuf.st_mode & S_IROTH)) {
    return FORBIDDEN;
}
... success, continue ...