我正在编写一个简单的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。
所以我的问题是:如何获得其他用户的读取权限统计? 或者我在概念中犯了什么错误?
谢谢。
答案 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 ...