作業系統中, 有關檔案的大部分屬性存放在磁碟中的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 ...