用到的函数:fopen、fseek、ftell
//打开文件
FILE *fopen(const char * pathname, const char * mode);
pathname:文件路径,可以是绝对路径或相对路径。
mode:文件的操作模式(可读 or 可写 or 可读写),参数如下表所示。
返回值:返回文件指针
模式(mode) 含义 r 只读 w 只写 a 末尾追加只写 r+ 读写 w+ 读写 a+ 读写
// 任意的移动文件指针,向前向后都可以
int fseek(FILE *stream, long offset, int whence);stream:文件指针
offset:偏移值,文件指针相对于whence的偏移,为正数时文件指针后移,为负数时前移。
whence:从 SEEK_SET、SEEK_CUR、SEEK_END中取值
SEEK_SET 文件开头 SEEK_CUR 文件指针当前的位置 SEEK_END 文件末尾
long ftell(FILE *stream);
stream:文件指针
返回值:返回当前文件指针相对于文件开始位置的字节数
代码示例:(函数实现的环境实在Linux里)
#include <stdio.h>
#include <stdlib.h>
long back_size(const char *file)
{
//打开需要计算大小的文件
FILE *frp = fopen(file,"r");
if(NULL == frp)//文件打开失败
{
perror("fopen");
exit(EXIT_FAILURE);
}
//将文件指针置于文件末尾
fseek(frp,0,SEEK_END);
//计算文件大小并返回
return ftell(frp);
}
int main(int argc,const char* argv[])
{
if(2 != argc)//判断用户的参数数量是否正确
{
printf("User: ./a.out file_name\n");
return 0;
}
printf("文件大写为:%ld字节\n",back_size(argv[1]));
}
C语言文件读写操作参考:C如何简单的读写文件?二进制文件如何读写?如何移动文件指针?_c语言文件指针移动_我要出家当道士的博客-CSDN博客