正文
c语言读取文件大小的函数 c语言读取文件大小的函数怎么写
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
c语言如何获得文件的创建时间以及文件的大小?(头文件及所用的函数,最好有用法举例)
1.MFC中的方法:(C++)
CFileStatus status;
CFile::GetStatus("D:\\test.txt",status);
long lSizeOfFile;
lSizeOfFile = status.m_size;
lSizeOfFile的值就是D:\\test.txt文件的大小
2.标准C获得文件大小的5种方法
(注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\test.txt")
#include "stdafx.h"
#include "stdio.h"
#include sys/stat.h
#include io.h
#include FCNTL.H
int getfilesize()
{
int iresult;
struct _stat buf;
iresult = _stat(__FILE__,buf);
if(iresult == 0)
{
return buf.st_size;
}
return NULL;
}
int getfilesize01()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _filelength(fp);
//return NULL;
}
int getfilesize02()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize03()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize04()
{
FILE *fp;
if((fp=fopen(__FILE__,"r"))==NULL)
return 0;
fseek(fp,0,SEEK_END);
return ftell(fp); //return NULL;
}
int getfilesize05()
{
FILE *fp;
char str[1];
if((fp=fopen(__FILE__,"rb"))==NULL)
return 0;
for(int i = 0;!feof(fp);i++)
{
fread(str,1,1,fp);
}
return i - 1; //return NULL;
}
int main(int argc, char* argv[])
{
printf("getfilesize()=%d\n",getfilesize());
printf("getfilesize01()=%d\n",getfilesize01());
printf("getfilesize02()=%d\n",getfilesize02());
printf("getfilesize03()=%d\n",getfilesize03());
printf("getfilesize04()=%d\n",getfilesize04());
printf("getfilesize05()=%d\n",getfilesize05());
return 0;
}
C语言 stat()函数获得文件大小需不需要打开文件?就是stat()函数是怎么获得文件的大小的?
stat函数不需要c语言读取文件大小的函数,只要文件名就行(你c语言读取文件大小的函数的文件在当前路径下,要不还需将路径名加上),int state(const char * path,struct stat *buf);这是函数原型。在struct state这个结构体中有个st_size这个变量,c语言读取文件大小的函数他就是文件大小的变量。具体你可以查一下man手册。与它类似的还有一个fstat,他需要open文件得到文件描述符。
c语言中的rewind()是什么意思
rewind是C 程序中的库函数。
功 能: 将文件内部的位置指针重新指向一个流(数据流/文件)的开头。
注意c语言读取文件大小的函数:不是文件指针而是文件内部的位置指针c语言读取文件大小的函数,随着对文件的读写文件的位置指针(指向当前读写字节)向后移动。而文件指针是指向整个文件,如果不重新赋值文件指针不会改变。
rewind函数作用等同于 (void)fseek(stream, 0L, SEEK_SET); 用 法: void rewind(FILE *stream);
“函数”是从英文function翻译过来的,其实,function在英文中的意思即是“函数”,也是“功能”。从本质意义上来说,函数就是用来完成一定功能的。
这样对函数的概念就很好理解了,所谓函数名就是给该功能起个名字,如果该功能是用来实现数学运算的,就是数学函数。
扩展资料
C语言没有提供获取文件大小的函数,要想实现该功能,必须自己编写函数。
1、fseek()函数
int fseek (FILE *filepointer,long offset, int whence)
作用就是将文件指针所指向的文件的读写位置指针移动到特定的位置,这里offset代表了要移动到距离,whence代表了移动到初始地点。offset的值假如是正数就会往 whence右边移动,假如是负数就会往whence左边移动。
fseek(fp, 8, SEEK_SET); //代表开头位置往右边移动8个字节。
2、rewind()函数
将读写位置指针重置到文件开头。void rewind(FILE *filepointer);
3、ftell()函数
这个函数可以用来获取文件内部指针(位置指针)距离文件开头的字节数。
它的原型是c语言读取文件大小的函数:long int ftell ( FILE * fp );
参考资料来源:百度百科-rewind
如何用C语言获取文件的大小
/* 解题思路: 以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用ftell函数返回指针的在文件中的相对位置即可。
*/
#include "stdio.h"
main()
{ FILE *fp; /*定义文件指针*/
long cnt; /*定义变量cnt用来存储文件大小数据*/
fp=fopen("c:\\1.txt","r"); /*此处请填写测试文件的地址,并以只读("r")方式打开文件*/
if( fp==NULL ) /*如果打开的文件不存在,则退出*/
{ exit(0);
printf("文件打开失败!");
}
fseek(fp,0L,SEEK_END); /*利用fseek函数将指针定位在文件结尾的位置*/
cnt=ftell(fp); /*利用ftell函数返回指针相对于文件开头的位置,以字节计算*/
printf("文件所占的字节数为%ld个\n",cnt); /*进行输出*/
}
C语言 fstat函数问题
这是文件常用函数啊,用来查看文件结构之类的,看了下代码写的没啥问题,建议你看下头文件是否完整,也有可能是win7添加了所需头文件的环境变量,xp没做这一步骤,建议检查一下
怎样用C语言高效的读取一个70M 左右的txt文件并,如果用malloc函数的话怎么实现呢
现成的程序, 有英文详细解释
#include stdio.h
#include stdlib.h
int main () {
FILE * pFile;
long lSize;
char * buffer;
size_t result;
pFile = fopen ( "myfile.bin" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size: 获取文件大小
fseek (pFile , 0 , SEEK_END); //窍门 1
lSize = ftell (pFile); // 窍门 2
rewind (pFile);
// allocate memory to contain the whole file: //动态分配
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
// copy the file into the buffer: // 文件复制到 缓冲变量
result = fread (buffer,1,lSize,pFile);
if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
/* the whole file is now loaded in the memory buffer. */ // 整个文件在 buffer 里
// terminate
fclose (pFile); // 关闭文件
free (buffer); // 释放
return 0;
}
c语言读取文件大小的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言读取文件大小的函数怎么写、c语言读取文件大小的函数的信息别忘了在本站进行查找喔。