我有一个mode_t烫发变量存储从另一个函数返回一个文件的权限。 我需要打印文件的权限为特林,形式
rw-r--r-- (0644)
但我得到的是
r--r--r-- (100644)
我怎样才能得到正确的权限? 我试着用搜索引擎,不明白我在做什么错。 这里是我的代码:
void print_perms(mode_t perms)
{
printf( (perms & S_IRUSR) ? "r" : "-");
printf( (perms & S_IWUSR) ? "w" : "-");
printf( (perms & S_IXUSR) ? "x" : "-");
printf( (perms & S_IRGRP) ? "r" : "-");
printf( (perms & S_IWGRP) ? "w" : "-");
printf( (perms & S_IXGRP) ? "x" : "-");
printf( (perms & S_IROTH) ? "r" : "-");
printf( (perms & S_IWOTH) ? "w" : "-");
printf( (perms & S_IXOTH) ? "x" : "-");
}
//later
print_perms(permissions);
printf(" (%d)\n", permissions);