在 shell 下直接使用 ls 就可獲得檔案的屬性
在程式中,用 stat/ fstat/ lstat 函式,獲取檔案的屬性
函式可通過命令:man 2 stat 檢視
#include
#include
#include
intstat
(const
char
*pathname,
struct stat *statbuf)
;int
fstat
(int fd,
struct stat *statbuf)
;int
lstat
(const
char
*pathname,
struct stat *statbuf)
;
函式的返回值都是 0,當有錯誤發生時返回 -1,錯誤**存放在 error 中。
區別:①stat:用於獲取由引數 file_name 制定的檔名的狀態資訊,儲存在引數 struct stat *buf 中。
②fstat:與 stat 的區別在於該函式由檔案描述符來獲取檔案的引數,檔案的引數依舊儲存在 buf 中。
③lstat:與 stat 的區別在與如果對於鏈結檔案,lstat 返回的是鏈結檔案本身的狀態資訊,stat 返回的是鏈結檔案所指向的檔案的狀態資訊。
struct stat *buf 儲存的檔案狀態資訊的:
struct stat
;
st_dev:檔案的裝置編號
st_ino:檔案的 i-node(i 節點編號)
st_mode:檔案的型別和儲存許可權
st_nlink:連線到該檔案的硬鏈結數目,剛建立的檔案值為1
st_uid:檔案所有者的 id
st_gid:檔案所有組的 id
st_rdev:若此檔案為裝置檔案,則其為裝置編號
st_size:檔案大小,以位元組計算,對連線檔案,改大小是其所只想的檔名的長度
st_blksize:檔案系統的 i/o 緩衝大小
st_blocks:占用檔案區塊的個數
對於 st_mode 包含的檔案型別資訊,posix 標準定義了一系列巨集。
s_islink(st_mode):判斷是否為符號鏈結
s_isreg(st_mode):一般檔案
s_isdir(st_mode):目錄檔案
s_ischr(st_mode):裝置檔案
s_isblk(st_mode):塊裝置檔案
s_isfifo(st_mode):先進先出檔案
s_isstock(st_mode):判斷是否是 socket
常用的有:st_mode, st_uid, st_gid, st_size, st_atime, st_mtime。
linux檔案屬性
linux檔案屬性1 首先檢視一下 ls l 檢視檔案的檔案屬性 上面顯示檔案屬性一共7個常見的字段。各個欄位的含義 1.第乙個字段 檔案許可權 就是 或者r w x的組合。一共10位。左面開始數起,a 第一位 檔案型別 常規檔案 系統普通檔案。d directory 目錄檔案,目錄是特殊的檔案,目...
linux檔案屬性
linux檔案屬性3 目錄是乙個特別的檔案 目錄檔案 比如 drwxr r 就是乙個目錄的許可權 目錄具有r許可權 可以檢視目錄裡面的檔名,只是檢視檔名。是否能夠對檔案操作,那還要看檔案的許可權。目錄具有w許可權 在目錄下 增加檔案 刪除檔案 檔名重新命名 目錄具有x許可權 能夠進入該目錄 能夠使用...
linux檔案屬性
linux是多使用者多工環境,因此檔案的許可權管理十分重要。linux將檔案可訪問訪問的身份分為3種 owner group others,每種身份有三種許可權 read write execute。另乙個常識,root是萬能的,能做任何事情!這是在終端中輸入ls al命令後,列出的內容,從途中可以...