Linux系統程式設計之管理目錄與檔案的stat函式組

2021-10-05 06:51:36 字數 1856 閱讀 7238

摘自:

linux系統程式設計之管理目錄與檔案的stat函式組

不見而明 2019-01-22 21:36:47 133 已收藏

展開在ubuntu中,我們可以通過ls相關命令檢視檔案和目錄的有關資訊,如使用ls -ail,我們可以看到檔案的相關資訊,如下圖所示,那麼,我們如何通過程式設計提取相關檔案的資訊呢?此時,就可以用stat函式來實現這個功能。

從以上圖中,我們可以看到,包含了stat,fstat,lstat三個函式。往下翻,可以看到有乙個結構體:

成功則返回0,失敗返回-1;

這裡我們以stat為例說明一下:

stat函式需要兩個引數,第乙個引數是檔案路徑,也就是我們需要查詢的檔案的路徑,第二個引數是乙個結構體引數,我們在使用stat函式後,會返回第乙個引數所在路徑的檔案的相關資訊,這些資訊儲存在這個結構體中,這個結構體變數的值就是檔案對應的資訊。

接下來是乙個對這三個函式使用的demo,這個demo使用三個函式檢視檔案的索引號:

#include

#include

#include

#include

#include

int main(int argc, char *ar**)

//stat test

ret = stat(ar**[1], &groupstat);

if(ret)

printf("stat function test ,%s of st_ino is %ld!\n",ar**[1], groupstat.st_ino);

//fstat test

fd = open(ar**[1], o_rdwr|o_noctty|o_ndelay);

if(fd < 0)

ret = fstat(fd, &groupstat);

if(ret)

printf("lstat function test ,%s of st_ino is %ld!\n",ar**[1], groupstat.st_ino);

//lstat test

ret = lstat(ar**[1], &groupstat);    

if(ret)

printf("fstat function test ,%s of st_ino is %ld!\n",ar**[1], groupstat.st_ino);

return 0;

編寫完後,再通過編譯,生成可執行檔案:

然後執行可執行檔案,檢視stat.c檔案的索引號:

我這個實在itop4412上面實現的,也可以在ubuntu上實現。

ubuntu上實現如下:

使用編譯命令gcc stat.c -o stat生成可執行檔案stat,然後執行stat,後面加上你想要查詢的檔案的路徑,這裡是同一資料夾下的stat.c檔案,獲取到的索引號為353929,與我們用 ls -i查到的一樣:

Linux系統程式設計之程序

程序狀態 4 5種 就緒 初始化 執行,掛起 等待 停止 pbc成員 1 程序id 2 程序狀態 3 程序切換需要儲存和恢復的cpu暫存器 4 描述虛擬位址空間資訊 5 描述控制終端的資訊 6 當前工作目錄 7 umask掩碼 8 檔案描述符 9 訊號相關的資訊 10 使用者和使用者組id 11 會...

Linux系統程式設計之shell script介紹

shell script 程式指令碼化 是乙個可以實現自動管理系統的好工具!它值得開發人員好好學習,基本上,shell script有點像是早期批處理的檔案,即將一些命令彙整起來一次執行,但是shell script擁有更強大的功能,因為它可以編寫不需要經過編譯就能執行的shell script程式...

Linux系統程式設計之檔案程式設計

目錄 一 檔案程式設計 1 linux檔案 2 檔案描述符 file descriptor 3 常用api open write read lseek close 1 open 開啟檔案函式 2 close 關閉檔案 3 write 寫檔案 4 read 讀檔案 5 lseek 游標定位 linux...