Linux C 獲取掛載目錄分割槽使用大小

2021-06-08 09:24:41 字數 917 閱讀 4155

當前專案需要獲取系統掛載sd卡或者u盤的使用大小,使用以下方法解決。

主要是使用statfs結構及其方法:

#include 或者

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

int fstatfs(int fd, struct statfs *buf);

成功返回0, 失敗返回-1。

以下是系統中的statfs機構體宣告:

__sword_type int

__fsblkcnt_t unsigned long int

__fsblkcnt64_t unsigned long long int

struct statfs

;

方法如下:

//獲取掛載目錄 剩餘大小,總大小,單位m

int getfssize(char *path, long long *freesize, long long *totalsize)

//註明long long,避免資料溢位

*freesize = (((long long)mystatfs.f_bsize * (long long)mystatfs.f_bfree) / (long long) 1024 / (long long) 1024);

*totalsize = (((long long)mystatfs.f_bsize * (long long)mystatfs.f_blocks) / (long long) 1024 / (long long) 1024);

return 0;

}

//~end~

mount掛載WINDOWS分割槽和目錄

一,掛載共享目錄 sudo mount t cifs o username aming,password aming,iocharset utf8 server share mnt sudo 切換管理員執行 mount 掛載命令 t cifs cifs就是windows的共享協議,o 使用者資訊 u...

磁碟分割槽以及Linux目錄掛載詳解

一 背景 一直以來,對於磁碟的分割槽以及linux目錄掛載的概念都不是很清晰,現在趁著春暖花開週末在家沒事就研究了下它們,現在來分享我的理解。二 概念詳解 1.磁碟分割槽 磁碟分割槽是把物理的磁碟空間按照自己的要求分成n個不同大小的區域,以便os更好更高效的進行檔案儲存管理。像我們經常使用的wind...

linux C獲取給定路徑的父目錄

經常會獲取父目錄操作,腦子總是記不住。還是記錄一下吧。為自己也為和自己一樣忘性大的人提供方便。linux man 查詢 man 3 basenamechar dirc,basec,bname,dname char path etc passwd dirc strdup path basec strd...