linux 檔案屬性

2021-09-24 01:37:55 字數 1424 閱讀 2349

在 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命令後,列出的內容,從途中可以...