gpt4 book ai didi

c - 权限位的解释

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:20 26 4
gpt4 key购买 nike

我正在查看各种函数(如 stat()chmod())中使用的权限位,我想要描述实际定义的宏是什么。例如 S_IRUSR 表示它由 00400 (GNU/Linux) 表示。我的问题是,有人可以描述一下 00400 到底是什么吗?它是一个数字,什么?我了解如何对宏进行 OR,只是不明白宏实际上是什么。

最佳答案

我将描述最左边的三个数字,这也可以解释 S_IRUSR,

所以每个数字都是一个八进制数。每个数字可以是0到7。每个八进制数都可以转换为3位二进制数。每个位代表一个权限。

Left most bit = Read permission
Middle bit = Write permission
Right most bit= Execute permission

让我们将 0 到 7 写入二进制并查看权限位:

Octal    Binary 
0 0 0 0 (No Read, No Write, No Execute) -- No permission
1 0 0 1 (No Read, No Write, Yes you can execute)
2 0 1 0 (No Read, Can Write, No execute)
3 0 1 1 (No Read, Can Write, Can execute)
4 1 0 0 (Can Read, No Write, No Execute)
5 1 0 1 (Can Read, No Write, Can execute)
6 1 1 0 (Can Read, Can Write, No execute)
7 1 1 1 (Can Read, Can Write, Can execute)

所以每个数字代表权限。现在下一部分是关于这些许可的人。设最左边的三个数为 XYZ:现在,

X means permission given to the owner of the file.
Y means permission given to the group of the owner.
Z means permission given to all other users in system , outside of user's group.

鉴于 Z_ISUSR = 00400,现在 4 表示用户可读 IRUSR = 用户可读。

这三个是权限中的重要数字,它们只是指定了赋予文件的权限。

关于c - 权限位的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13535654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com