使用 stat 函数,我可以获得以下内容的读/写权限:
- 所有者
- 用户
- 其他
……但这不是我想要的。我想知道我的进程(即我正在编写的应用程序)的文件的读/写权限。所有者/用户/其他只有在我知道我的进程是否作为文件的所有者/用户/其他运行时才有帮助......所以也许这就是解决方案,但我不确定到达那里的步骤。
使用getuid()
/geteuid()
确定进程的用户 ID,同样使用getgid()
/确定getegid()
组 ID。然后,您可以与文件的所有者/组(您从stat
or获得lstat
)进行比较并交叉引用权限位。
你不想用stat()
这个。您想使用access()
from <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";
}