查詢磁碟空間 statfs函式

2021-10-05 02:08:38 字數 1402 閱讀 8307

因為要讀取sd卡的大小和使用情況,所以用到statfs這個函式,功能類似於df命令。

需要的標頭檔案:#include

int statfs(const char *path, struct statfs *buf);

struct statfs ;
返回值:

成功執行時,返回0。失敗返回-1,errno被設為以下的某個值  

eacces: (statfs())檔案或路徑名中包含的目錄不可訪問

ebadf : (fstatfs()) 檔案描述詞無效

eintr : 操作由訊號中斷

eio : 讀寫出錯

eloop : (statfs())解釋路徑名過程中存在太多的符號連線

enametoolong:(statfs()) 路徑名太長

enoent:(statfs()) 檔案不存在

enomem: 核心記憶體不足

enosys: 檔案系統不支援呼叫

enotdir:(statfs())路徑名中當作目錄的元件並非目錄

eoverflow:資訊溢位

example:

#include #include int main()

; printf("total_size == %llu kb %llu mb %llu gb\n",totalsize>>10,totalsize>>20,totalsize>>30); // 分別換成kb,mb,gb為單位

sprintf(totalsize_gb,"%.2f",(float)(totalsize>>20)/1024);

printf("totalsize_gb=%s\n",totalsize_gb);

unsigned long long freesize = blocksize*diskinfo.f_bfree; //再計算下剩餘的空間大小

MySQL中查詢磁碟空間

查詢所有資料庫占用磁碟空間大小的sql語句 select table schema,concat truncate sum data length 1024 1024,2 mb as data size,concat truncate sum index length 1024 1024,2 mb ...

獲得磁碟空間

procedure getdiskinfo var totalsize,freesize integer disk string 單位為兆 m varfreespace,totalspace int64 begin if pos trimright disk length disk then dis...

排查磁碟空間

排查目錄的大檔案 一利用inode 排查 涉及用到命令 du sh 報告磁碟空間使用情況 s summarize 對每個引數只顯示總和 h separate dirs 單獨報告每乙個目錄的大小,不包括子目錄的大小 代表是哪個目錄 代表所有 這裡舉乙個簡單例子,block滿了 這裡我模擬了乙個環境,在...