我正在编写一个简单的C++ WebServer赋值,我想检查这个文件是否可以被其他用户读取。否则,服务器将发送回403禁止。
我已经有了一个使用statbuf.st_mode
的stat(FILE,&statbuf)
,但我不知道如何检索其他用户的读取权限。我知道有“S椆IROTH”,但我不知道如何使用它。我试着用cout<<S_IROTH<<endl;
把它打印到终端,结果是4,但是“FILE”的权限是0440,所以我想我没有打印“FILE”的S_IROTH。
所以我的问题是:如何获取其他用户的读取权限统计信息?
或者我在概念上犯了什么错误?
谢谢您。
最佳答案
您需要根据S_IROTH
屏蔽文件的模式。另外,您传递的statbuf
不正确(您应该会收到警告)。正确的代码应该如下所示:
int result = stat(path, &statbuf);
if (result != 0) {
return NOT_FOUND;
}
if (!(statbuf.st_mode & S_IROTH)) {
return FORBIDDEN;
}
... success, continue ...
关于c++ - C++/Linux如何获得其他用户的读取权限统计信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22650189/