#define COPYMODE 0644
creat(argV[2],COPYMODE);
我在 copy.c 文件中有这两行代码。 我不知道这是什么意思。 请举例说明
最佳答案
模式有 3x3 位标志:
- (拥有)用户
- 阅读
- 写
- 执行
- 集团
- 阅读
- 写
- 执行
- 其他
- 阅读
- 写
- 执行
所以每个三元组都很好地编码为八进制数字。
rwx oct meaning
--- --- -------
001 01 = execute
010 02 = write
011 03 = write & execute
100 04 = read
101 05 = read & execute
110 06 = read & write
111 07 = read & write & execute
所以 0644 是:
* (owning) User: read & write
* Group: read
* Other: read
请注意,在 C 语言中,开头的 0
表示八进制表示法,就像 0x
表示十六进制表示法一样。所以每次你在 C 中写纯零时,它实际上是一个八进制零(有趣的事实)。
也可以这样写:
-rw-r--r--
虽然完全权限,0777也可以写成:
-rwxrwxrwx
因此传递给 creat
的八进制数直接对应于(通过位模式的八进制编码)由 ls -l
显示的文件权限。
关于c - mode_t 0644 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18415904/