使用stat函数,我可以获得:/ / p>的读/写权限
......但这不是我想要的。我想知道我的进程(即我正在编写的应用程序)的文件的读/写权限。所有者/用户/其他人只有在我知道我的进程是否作为文件的所有者/用户/其他人运行时才有用...所以也许这是解决方案,但我不确定到达那里的步骤。
答案 0 :(得分:2)
使用getuid()
/ geteuid()
来确定流程的用户ID,同样使用getgid()
/ getegid()
来获取群组ID。然后,您可以与文件的所有者/组(您从stat
或lstat
获得)进行比较,并交叉引用权限位。
答案 1 :(得分:2)
您不希望使用stat()
。您想使用access()
中的<unistd.h>
:
char const* name = "file";
if (access(name, R_OK)) {
std::cout << "'" << name << "' is readable\n";
}
if (access(name, W_OK)) {
std::cout << "'" << name << "' is writable\n";
}
答案 2 :(得分:1)