在Linux OS的C程序中,如何检查用户是否具有文件读取权限?

时间:2014-12-18 11:08:50

标签: c linux file-permissions username

该功能将是这样的。

int GetFilePermission(char* pcUsername, char* pcFilePath)
{
    /*return TRUE if 'pcUsername' has read permission on file 'pcFilePath'.*/
}

我不想使用stat()。因为它会有点长。我必须检查文件的权限,它的所有者并以不同的组合比较它们。这样做有什么简短的方法/技巧吗?

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

使用访问功能,我们可以让用户获得许可。请参阅访问的手册页。

int access(const char *pathname, int mode);

如果您使用stat功能,则会获得有关该文件的所有信息。在访问中,我们只有这四个。 R_OK, W_OK, X_OK and F_OK.使用此功能,我们可以轻松搞定。如果成功,返回值为零。

R_OK = read permission
W_OK = Write permission
X_OK = Execute permission
F_OK = file is existing.

答案 1 :(得分:0)

您可以使用stat

统计原型

#include <sys/stat.h>
int stat(const char *restrict path, struct stat *restrict buf);