C语言怎么获取文件大小
时间: 2024-05-05 10:15:10 浏览: 12
可以使用标准库函数fseek和ftell获取文件大小。
示例代码:
```c
#include <stdio.h>
long getFileSize(FILE* file) {
long size;
fseek(file, 0L, SEEK_END); // 将文件指针定位到文件末尾
size = ftell(file); // 获取文件大小
fseek(file, 0L, SEEK_SET); // 将文件指针定位回文件开头
return size;
}
int main() {
FILE* file = fopen("test.txt", "r");
if (file == NULL) {
printf("文件打开失败!");
return 1;
}
long size = getFileSize(file);
printf("文件大小为 %ld 字节\n", size);
fclose(file);
return 0;
}
```
代码解析:
1. getFileSize函数中,fseek将文件指针定位到文件末尾,SEEK_END表示从文件末尾开始偏移0个字节,相当于定位到文件末尾。ftell获取当前文件指针的位置,即文件大小。最后使用fseek将文件指针定位回文件开头。
2. main函数中,首先打开文件,如果文件打开失败,则输出错误信息并退出程序。然后调用getFileSize函数获取文件大小,并输出到控制台。最后关闭文件并返回0。