S_IRUSR中“我”的含义是什么?

时间:2012-12-27 13:50:57

标签: posix

S_IRUSR是posix的sys / stat.h中的宏常量。它代表用户读权限位。

前缀S_可代表'的状态。 RUSR可能是用户读取。 但是'我'

的含义是什么?

1 个答案:

答案 0 :(得分:19)

命名是历史性的......可以追溯到UNIX的早期阶段。 “S”表示STAT,“I”表示INODE(一个术语并非真正用于POSIX本身的Rationale之外),“R”表示READ,“USR”表示USER。

Inodes确实有一些提及,stat结构还包括“st_ino”,标准将其描述为“文件序列号”。在许多POSIX实现中,inode是一个包含文件所有元数据的数据结构(其中大部分是stat()调用读取的内容)。

(来自维基百科:)将这些指定为“i”节点的原因尚不清楚。当被问到时,Unix先驱Dennis Ritchie回答说:

  

事实上,我也不知道。这只是我们开始的一个术语   使用。 “索引”是我最好的猜测,因为文件稍有不寻常   将文件的访问信息存储为平面的系统结构   磁盘上的数组,包含所有分层目录信息   生活在此之外。因此,i-number是这个数组中的索引,   i-node是数组的选定元素。

(“i-”符号用于第1版手册;其连字符逐渐删除。)