C语言用fstat函数获取文件的大小
2017-06-24 01:10
211 查看
之前获取文件大小总是用死办法,open一个文件,然后lseek,read这样去获取文件的大小,这样的效率实在是低,还有可能粗心大意还会出错。
一次偶然在Android的源代码中看到获取文件大小的函数,在以下范例中。用fstat这个函数可以避免这些问题。
参考百度:http://baike.baidu.com/link?url=wh6msZkLUlTCx8P6YzujB3YoHaLLVaO68sQIIPR6ICj1yXYJxHfTDvxFwzjJ4YlpZZ8IDsKhKyf9EaCHo4ARHa
函数原型: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 ;
}
运行结果:
一次偶然在Android的源代码中看到获取文件大小的函数,在以下范例中。用fstat这个函数可以避免这些问题。
参考百度:http://baike.baidu.com/link?url=wh6msZkLUlTCx8P6YzujB3YoHaLLVaO68sQIIPR6ICj1yXYJxHfTDvxFwzjJ4YlpZZ8IDsKhKyf9EaCHo4ARHa
函数原型: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 ;
}
运行结果:
相关文章推荐
- C语言中获取文件大小的函数
- [置顶] linux获取文件大小的函数fstat()
- 如何用C语言获取文件的大小
- php获取远程文件内容与大小的函数代码
- C语言获取文件大小
- 如何用C语言获取文件的大小
- C语言获取文件大小
- 用文件大小获取单位的函数[asp]
- C语言获取文件大小
- Linux下获取文件大小,检索目录函数
- 用C语言获取文件的大小示例分享
- Linux系统遍历文件夹 获取文件大小的操作(C语言实现)
- C语言获取文件大小相关操作
- 转--C函数获取文件大小【待用】
- 如何用C语言获取文件的大小
- 如何用C语言获取文件的大小
- Linux 获取文件属性 函数 stat, fstat, lstat 以及 stat 结构体
- C语言中获取文件大小的方法
- 获取文件大小(C语言)
- C语言编程中从密码文件获取数据的函数总结