我有關於位操作和權限的以下教程問題,我不太明白。具體來說就像我所理解的那樣>> 3操作數是3個空格的位移,但是這會導致全部爲零的類型保護... | 0000400 | >> 3 00000000 | 4 ...?權限位操作查詢
// File types
#define S_IFDIR (0040000) // Directory
#define S_IFREG (0100000) // Regular file
#define S_IFLNK (0120000) // Symbolic link
// Protection bits
#define S_IRUSR (0000400) // Read by owner
#define S_IWUSR (0000200) // Write by owner
#define S_IXUSR (0000100) // Execute by owner
#define S_IRGRP (S_IRUSR >> 3) // Read by group
#define S_IWGRP (S_IWUSR >> 3) // Write by group
#define S_IXGRP (S_IXUSR >> 3) // Execute by group
#define S_IROTH (S_IRGRP >> 3) // Read by others
#define S_IWOTH (S_IWGRP >> 3) // Write by others
#define S_IXOTH (S_IXGRP >> 3) // Execute by others
請注意,上面的常量是八進制,而不是十進制或十六進制。
對於每一個在以下情況下,給位串的八進制表示,將捕捉到相關的特權:
一個。一個只能讀取和寫入其所有者的常規文件
b。一個可寫入其所有者但可由所有者/組/任何人讀取的常規文件
c。一個只對所有者/組/任何人可執行的常規文件
d。只有所有者可以讀取,創建文件或輸入的目錄
e。只有所有者可以創建文件的目錄,但任何人都可以讀/輸入
f。一個目錄所有者/組/任何人都可以閱讀,在創建文件,或者進入
答案:
一個。 0100600
b。 0100644
c。 0100111
d。 0040700
e。 0040755
f。 0040777