当前位置: 技术问答>linux和unix
linux应用编程:stat函数 看文件权限的问题!!!!
来源: 互联网 发布时间:2016-09-18
本文导语: struct stat buf; stat("/etc/passwd",&buff); 头文件等省略,我就想知道passwd的文件权限,看函数介绍了很多像S_IRUSR,IRGRP,IROTH等参数, 但是我不知道怎么用这些参数来判断文件的权限... 希望详细的回答,什么系统操作上的查询就...
struct stat buf;
stat("/etc/passwd",&buff);
头文件等省略,我就想知道passwd的文件权限,看函数介绍了很多像S_IRUSR,IRGRP,IROTH等参数, 但是我不知道怎么用这些参数来判断文件的权限...
希望详细的回答,什么系统操作上的查询就不要回了,我要的是用函数求~ 谢谢~~~
stat("/etc/passwd",&buff);
头文件等省略,我就想知道passwd的文件权限,看函数介绍了很多像S_IRUSR,IRGRP,IROTH等参数, 但是我不知道怎么用这些参数来判断文件的权限...
希望详细的回答,什么系统操作上的查询就不要回了,我要的是用函数求~ 谢谢~~~
|
你运行一下这个程序就基本知道了。
#include
#include
int main(int argc,char **argv) {
struct stat f_stat;
int ret;
ret=stat(argv[1],&f_stat);
printf("st_mode=%02Xn",f_stat.st_mode);
if (f_stat.st_mode&S_IRUSR)
printf("S_IRUSRn");
if (f_stat.st_mode&S_IWUSR)
printf("S_IWUSRn");
if (f_stat.st_mode&S_IXUSR)
printf("S_IXUSRn");
if (f_stat.st_mode&S_IRGRP)
printf("S_IRGRPn");
if (f_stat.st_mode&S_IWGRP)
printf("S_IWGRPn");
if (f_stat.st_mode&S_IXGRP)
printf("S_IXGRPn");
if (f_stat.st_mode&S_IROTH)
printf("S_IROTHn");
if (f_stat.st_mode&S_IWOTH)
printf("S_IWOTHn");
if (f_stat.st_mode&S_IXOTH)
printf("S_IXOTHn");
return 0;
}