linux stat系統呼叫,獲取檔案資訊。

2021-07-03 16:43:24 字數 1400 閱讀 7947

stat 函式原型:

int

stat(const char *path, struct stat

*buf);

struct stat 說明

struct stat ;
stat結構體中的st_mode 則定義了下列數種情況:

s_ifsock 0140000 scoket

s_iflnk 0120000 符號連線

s_ifreg 0100000 一般檔案

s_ifblk 0060000 區塊裝置

s_ifdir 0040000 目錄

s_ifchr 0020000 字元裝置

s_ififo 0010000 先進先出

s_isuid 04000 檔案的(set user-id

on execution)位

s_isgid 02000 檔案的(set group-id

on execution)位

s_isvtx 01000 檔案的sticky位

s_irusr(s_iread) 00400 檔案所有者具可讀取許可權

s_iwusr(s_iwrite)00200 檔案所有者具可寫入許可權

s_ixusr(s_iexec) 00100 檔案所有者具可執行許可權

s_irgrp 00040 使用者組具可讀取許可權

s_iwgrp 00020 使用者組具可寫入許可權

s_ixgrp 00010 使用者組具可執行許可權

s_iroth 00004 其他使用者具可讀取許可權

s_iwoth 00002 其他使用者具可寫入許可權

s_ixoth 00001 其他使用者具可執行許可權

上述的檔案型別在posix中定義了檢查這些型別的巨集定義:

s_isreg (st_mode) 是否為普通檔案

s_isdir (st_mode) 是否為目錄檔案

s_isblk (st_mode) 是否為塊特殊檔案

s_ischr (st_mode) 是否為字元特殊檔案

s_isfifo (st_mode) 是否為管道檔案

s_issock (st_mode) 是否為套接字檔案

s_islnk (st_mode) 判斷是否為符號連線檔案

示例程式:

獲取檔案的大小。

int main()

獲取設定時間系統呼叫

名字 用處time t time time t t 獲取系統時間,獲取的為秒數 int stime time t t 設定系統時間,設定的為秒數 int gettimeofday struct timeval tv,struct timezone tz 設定系統時間,可獲取秒數與微秒數 int se...

獲取system系統呼叫的輸出

include include include include include static int getresultfromsystemcall const char pcmd,char presult,int size hide stdout int bak fd dup stdout fil...

VB呼叫API獲取系統資訊的例子

private declare function getversionex lib kernel32 alias getversionexa lpversioninformation as osversioninfo as long private type osversioninfo dwosve...