我已经成功地分别使用stat()
&access()
来确定用户是否具有对目录的读或读/写访问权限。
我的问题是: - 有没有首选的方法?我看到很多使用 的示例stat
,但就我的目的而言,访问似乎更轻量级并且服务于目的。
- 是否有任何问题(例如 - 安全性)w/一个或另一个?- 我的方法有什么问题吗?
这是一些伪代码(从内存重新创建,无需编译):
// Using access():
bool readAccessPermission = false;
bool writeAccessPermission = false;
if (mode == 'r'){
if (access(directory, R_OK) == 0)
readAccessPermission = true;
}
else{
if (access(directory, R_OK && W_OK) == 0)
readAccessPermission = true;
writeAccessPermission = true;
}
// vs. using stat function
// assume I already called stat(directory) and have the object
bool readAccessPermission = false;
bool writeAccessPermission = false;
var retmode = ((stats.mode) & (0777));
if (modeString == 'r'){
if ((retmode) & (consts.S_IRUSR)){
readAccessPermission = false;
}
}
else{
if ((retmode) & (consts.S_IRUSR)){
readAccessPermission = true;
if ((retmode) & consts.S_IWUSR)){
writeAccessPermission = true;
}
}
}