扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、先用fseek将文件指针移到文件末尾,再用ftell获取文件内指针当前的文件位置。这个位置就是文件大小。
成都创新互联公司是一家专注于成都网站制作、网站建设、外贸网站建设与策划设计,瑞安网站建设哪家好?成都创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:瑞安等地区。瑞安做网站价格咨询:13518219792
2、c语言可以通过stat()函数获得文件属性,通过返回的文件属性,从中获取文件大小。
3、你需要使用fseek函数将文件指针指向最后:fseek(fp, 0L, SEEK_END);sz = ftell(fp);其中sz就是文件的大小。
4、sz = _filelength(fn);/*根据文件号取得文件大小*/ printf(文件abc.txt大小为:%d字节.\n, sz);fclose(f);return 0;}/*end main*/ 备注:上述程序适用于任何一种文件,都可以直接求出大小。
5、如果文件大小指的是你从C 程序中可以读进的字符数量,要得到这个精确的数字可能困难或不可能。Unix 系统函数stat()会给出准确的答案。有些系统提供了类似Unix 的stat()函数,但只返回一个近似值。
6、你可以用程序open文件,用fgetc读文件,比较读入的byte个数。用二进制打开。
你的内存根本就不足4G如何去读一个如此大的文件,32位系统最高支持25g 32位地址总线本来最高就只能到4G 专用的一些地址再占掉一0.75G左右就剩下25G左右内存可用了。
= 0) return -1;//获取失败。 return statbuf.st_size;//返回文件大小。}通过C语言文件操作,获取文件大小。
返回-1是读错误,你打印一下errno看下:if((size=read(fd,buf,SIZE))0){ perror(read:);} 看一下错误信息才能判断问题。
优缺点:好处是你只要会C语言,就能够完全掌握而且十分容易理解这里面的道理。确定是纯C语言目前只能读取不超过2G的文件。所以对于超过2G的文件,其返回值是不正确的。
ftell(fp); 有返回值。通常写:long int p;fseek (...);p=ftell(fp);如果 p== -1L; 表示失败。系统变量 errno 就大于0。
}通过C语言文件操作,获取文件大小。以fopen打开的文件,通过fseek可以定位到文件尾,这时使用ftell函数,返回的文件指针偏移值,就是文件的实际大小。代码如下:include stdio.h//包含头文件。
第一种方法: 也可以读取一个不定长的文件。
先用fseek将文件指针移到文件末尾,再用ftell获取文件内指针当前的文件位置。这个位置就是文件大小。
关于第一个问题,那个操作确实是通过求文件的长度并把文件长度除以每个记录的长度来得到文件中的记录总数。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流