我有一个 mode_t perms 变量,它存储从另一个函数返回的文件的权限。我需要将文件权限打印为字符串,格式为
rw-r--r-- (0644)
Run Code Online (Sandbox Code Playgroud)
但我得到的是
r--r--r-- (100644)
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得正确的权限?我尝试过谷歌搜索,但不明白我做错了什么。这是我的代码:
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 …Run Code Online (Sandbox Code Playgroud)