之前獲取文件大小總是用死辦法,open一個文件,然后lseek,read這樣去獲取文件的大小,這樣的效率實在是低,還有可能粗心大意還會出錯。
一次偶然在Android的源代碼中看到獲取文件大小的函數,在以下范例中。用fstat這個函數可以避免這些問題。
函數原型:int fstat(int fildes, struct stat *buf);
參數說明:
fstat()
用來將參數fildes所指的文件狀態,復制到參數buf所指的結構中(struct stat)。
寫個范例:
#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <sys/stat.h>#include <unistd.h>//獲取文件的大小 int get_file_size(int f){ struct stat st; fstat(f, &st); return st.st_size;}int main(void){ int fd = open("test.py",O_RDWR); int size ; if(fd < 0) { printf("open fair!/n"); return -1 ; } size = get_file_size(fd) ; printf("size:%d字節--->%.2fK/n",size,(float)size/1024); return 0 ; }
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接
新聞熱點
疑難解答
圖片精選