小编Dav*_*ler的帖子

如何将文件权限打印为字符串?

我有一个 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)

c unix permissions

2
推荐指数
1
解决办法
9108
查看次数

标签 统计

c ×1

permissions ×1

unix ×1