C語言用fstat函數(shù)獲取文件的大小方法
之前獲取文件大小總是用死辦法,open一個(gè)文件,然后lseek,read這樣去獲取文件的大小,這樣的效率實(shí)在是低,還有可能粗心大意還會(huì)出錯(cuò)。
一次偶然在Android的源代碼中看到獲取文件大小的函數(shù),在以下范例中。用fstat這個(gè)函數(shù)可以避免這些問題。
函數(shù)原型:int fstat(int fildes, struct stat *buf);
參數(shù)說明:
fstat()
用來將參數(shù)fildes所指的文件狀態(tài),復(fù)制到參數(shù)buf所指的結(jié)構(gòu)中(struct stat)。
寫個(gè)范例:
#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字節(jié)--->%.2fK\n",size,(float)size/1024); return 0 ; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
c語言合并兩個(gè)已排序數(shù)組的示例(c語言數(shù)組排序)
如何將兩個(gè)已排序數(shù)組合并成一個(gè)排序數(shù)組,下面我們給出使用c語言合并兩個(gè)已排序數(shù)組的示例,需要的朋友可以參考下2014-03-03C語言數(shù)據(jù)結(jié)構(gòu)之線索二叉樹及其遍歷
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之線索二叉樹及其遍歷的相關(guān)資料,為了加快查找節(jié)點(diǎn)的前驅(qū)和后繼。對(duì)二叉樹的線索化就是對(duì)二叉樹進(jìn)行一次遍歷,在遍歷的過程中檢測(cè)節(jié)點(diǎn)的左右指針是否為空,如果是空,則將他們改為指向前驅(qū)和后繼節(jié)點(diǎn)的線索,需要的朋友可以參考下2017-08-08VC6實(shí)現(xiàn)激活后臺(tái)窗口最佳方法
這篇文章主要介紹了VC6實(shí)現(xiàn)激活后臺(tái)窗口最佳方法,實(shí)例分析了VC操作后臺(tái)窗口的技巧,需要的朋友可以參考下2015-06-06