檔案元屬性中st mode詳解

2021-10-07 10:38:48 字數 1366 閱讀 9348

作業系統中, 有關檔案的大部分屬性存放在磁碟中的i節點, 其餘的檔案資訊i節點編號和檔名稱存放在其父目錄的目錄項中;

可以使用系統呼叫stat或是lstat得到乙個檔案的所有屬性,這兩個函式返回的是乙個struct stat的資料結構。本文主要講解關於struct stat資料結構的第乙個欄位st_mode的介紹。st_mode中有關於檔案型別和檔案訪問訪問許可權的資訊, st_mode是16位;

15-12位:使用這4各位表示7種檔案型別

11-9位:設定使用者id位, 設定組id位, 檔案粘住位

8-6位:關於其他使用者的許可權

5-3位:關於組的訪問許可權

2-0位:關於使用者的訪問許可權

標頭檔案中使用8進製表示, 具體位的情況在標頭檔案定義如下:

//檔案型別

s_ifmt 0170000

s_ifsock 0140000

s_iflnk 0120000

s_ifreg 0100000

s_ifblk 0060000

s_ifdir 0040000

s_ifchr 0020000

s_ififo 0010000

//設定使用者id, 設定組id, 檔案粘住位

s_isuid 0004000

s_isgid 0002000

s_isvix 0001000

//使用者訪問許可權

s_irwxu 00700

s_irusr 00400

s_iwusr 00200

s_ixusr 00100

//組訪問許可權

s_irwxg 00070

s_irgrp 00040

s_iwgrp 00020

s_ixgrp 00010

//其他使用者訪問許可權

s_irwxo 00007

s_iroth 00004

s_iwoth 00002

s_ixoth 00001

下面函式是使用巨集實現的, 判斷檔案型別, 函式返回真假以表明是否屬於這種檔案型別;

s_islnk

(stat.st_mode)

;s_isreg

(stat.st_mode)

;s_isdir

(stat.st_mode)

;s_ischr

(stat.st_mode)

;s_isblk

(stat.st_mode)

;s_isfifo

(stat.st_mode)

;s_issock

(stat.st_mode)

;

小記 linux檔案元屬性

linux檔案元屬性是指檔案的inode號 擁有者 大小 修改時間等屬性,在linux中用以下結構體表示 struct stat 1.獲取檔案屬性 include include include int stat const char path,struct stat buf int fstat i...

中status屬性詳解

中的status 使用方法 1 status.odd 是否奇數行 2 status.count 當前行數 3 status.index 當前行的序號,從0開始 status.count status.index 1 4 status.first 是否第一行 5 status.last 是否最後一行 ...

linux檔案屬性詳解

linux 檔案或目錄的屬性主要包括 檔案或目錄的節點 種類 許可權模式 鏈結數量 所歸屬的使用者和使用者組 最近訪問或修改的時間等內容 具體情況如下 命令 ls lih 輸出 root localhost test ls lih 總計 316k 2095120 lrwxrwxrwx 1 root ...