當前專案需要獲取系統掛載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...