2012-12-27 52 views
11

S_IRUSR是posix的sys/stat.h中的一個宏常量。它代表用戶讀取權限位。S_IRUSR中'I'的含義是什麼

前綴S_可能代表'狀態' RUSR可能是用戶的閱讀。 但是'我'的含義是什麼?

回答

16

命名是歷史性的......可以追溯到UNIX的最早期。 「S」表示STAT,「I」表示INODE(在理論之外,POSIX本身並未真正使用這個術語),READ爲「R」,USER爲「USR」。

Inodes確實得到了一些提及,stat結構還包括標準描述爲「文件序列號」的「st_ino」。在許多POSIX實現中,inode是一個包含文件所有元數據的數據結構(其中大部分是由stat()調用讀取的)。

(來自Wikipedia :)將它們指定爲「i」節點的原因未知。當被問及時,Unix先驅Dennis Ritchie迴應道:

事實上,我也不知道。這只是一個術語,我們開始使用 。 「索引」是我最好的猜測,因爲稍微不尋常的文件 系統結構將文件的訪問信息作爲平面 數組存儲在磁盤上,所有分層目錄信息 都與此不同。因此,i數是該數組中的索引, i節點是數組的選定元素。

(其中「異」符號是在第1版手冊中使用;其連字符緩慢滴加)