代码:
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char * argv[]) {
struct stat st;
if( argc < 2) {
fprintf(stderr, "ERROR: Require a path\n");
return 2; //return status error
}
if( stat(argv[1], &st) < 0) { //error, cannot stat file
perror(argv[0]); //report erro with perror
return 2; //return status error
}
printf("The permissions of the given file are %o\n",st.st_mode);
return 0;
}
输出:
./statkk kk1.pdf 给定文件的权限是100664
这里pdf格式是一个普通文件。我发现最后三个八进制数分别表示所有者、组和其他人的权限。
第一、第二、第三个八进制数表示什么? 请看图片
答案1
详细解释请见http://manpages.ubuntu.com/manpages/man7/inode.7.html
掩码0100000
表示这是一个常规文件:S_IFREG