0

使用 stat 函数,我可以获得以下内容的读/写权限:

  • 所有者
  • 用户
  • 其他

……但这不是我想要的。我想知道我的进程(即我正在编写的应用程序)的文件的读/写权限。所有者/用户/其他只有在我知道我的进程是否作为文件的所有者/用户/其他运行时才有帮助......所以也许这就是解决方案,但我不确定到达那里的步骤。

4

3 回答 3

2

使用getuid()/geteuid()确定进程的用户 ID,同样使用getgid()/确定getegid()组 ID。然后,您可以与文件的所有者/组(您从stator获得lstat)进行比较并交叉引用权限位。

于 2012-09-23T21:32:01.000 回答
2

你不想用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";
}
于 2012-09-23T21:34:53.237 回答
1

像这样的东西:

if ( access( filename, W_OK )) { /* writable */ }

access(2)

于 2012-09-23T21:33:49.707 回答