c语言如何生成c文件大小,C语言中如何获得文件大小

方法一:

获得文件大小需要用到2个函数:fseek() , ftell()

fseek()函数:

原型:intfseek(FILE *stream, long offset, int fromwhere);

参数:

stream: 第一个参数stream为文件指针

offset : 第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移

fromwhere: 第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

其中SEEK_SET,SEEK_CUR和SEEK_END依次为0,1和2.

简言之:

fseek(fp,100L,0);把文件内部指针移动到离文件开头100字节处;

fseek(fp,100L,1);把文件内部指针移动到离文件当前位置100字节处;

fseek(fp,-100L,2);把文件内部指针退回到离文件结尾100字节处。

ftell()函数:

原型: longftell(FILE *stream);

功能:返回当前文件位置,也就是说返回FILE指针当前位置。(也就是偏离文件首字符个数)

#include

#include   //exit(0);

int main()

{

FILE *fp =NULL;

long n = 0;

if ((fp = fopen("Q.txt","r")) == NULL)

{

printf("文件打开失败。\n");

exit(0);

}

fseek(fp,0,2);   //指针:移动到文件尾部

n = ftell(fp);   //返回指针偏离文件头的位置(即文件中字符个数)

printf("%ld\n",n);

return 0;

}

方法二:

这里使用到 struct _stat结构体

st_atime : 上次访问该文件的时间

st_ctime : 文件创建时间

st_dev : 文件所在磁盘

st_mtime :最后一次修改文件时间

st_size : 文件大小

//…… 所有参数请参见MSDN

#include

#include

#include

#include

int main()

{

struct _stat buf;   //注意创建一个结构体

int result;

result = _stat( "Q.txt", &buf );

printf( "文件大小     : %ld\n", buf.st_size );

printf( "所在磁盘     : %c:\n", buf.st_dev + ‘A‘ );

printf( "创建时间     : %s", ctime( &buf.st_atime )

);

return 0;

}

原文:http://www.cnblogs.com/honkly/p/3724660.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值