C語言用fstat函數(shù)獲取文件的大小方法
之前獲取文件大小總是用死辦法,open一個(gè)文件,然后lseek,read這樣去獲取文件的大小,這樣的效率實(shí)在是低,還有可能粗心大意還會出錯(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)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
C++可視化角色按鍵移動(dòng)控制的實(shí)現(xiàn)
這篇文章主要介紹了C++可視化角色按鍵移動(dòng)控制的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2020-03-03
如何用c++表驅(qū)動(dòng)替換if/else和switch/case語句
本文將介紹使用表驅(qū)動(dòng)法,替換復(fù)雜的if/else和switch/case語句,想了解詳細(xì)內(nèi)容,請看下文2021-08-08
基于Opencv實(shí)現(xiàn)雙目攝像頭拍照程序
這篇文章主要為大家詳細(xì)介紹了基于Opencv實(shí)現(xiàn)雙目攝像頭拍照程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
基于Matlab實(shí)現(xiàn)繪制3D足球的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Matlab實(shí)現(xiàn)繪制3D足球,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Matlab有一定幫助,需要的可以參考一下2022-11-11
詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用
這篇文章主要介紹了詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-09-09
C++ operator關(guān)鍵字(重載操作符)的用法詳解
下面小編就為大家?guī)硪黄狢++ operator關(guān)鍵字(重載操作符)的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01

