fseek获取文件大小
时间: 2023-10-20 11:27:03 浏览: 102
您可以使用C语言中的`fseek`和`ftell`函数来获取文件的大小。
首先,您需要以二进制模式打开文件,然后使用`fseek`函数将文件指针移动到文件的末尾。接下来,使用`ftell`函数获取当前文件指针的位置,即为文件的大小。最后,关闭文件。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "rb"); // 以二进制模式打开文件
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 将文件指针移动到文件末尾
fseek(file, 0, SEEK_END);
// 获取当前文件指针的位置,即为文件的大小
long size = ftell(file);
printf("文件大小为 %ld 字节\n", size);
fclose(file); // 关闭文件
return 0;
}
```
在上面的示例代码中,假设您要获取名为"example.txt"的文件的大小。请将代码中的文件名替换为您要操作的实际文件名。完成后,编译并运行代码,即可得到文件的大小。
相关问题
fseek函数的查看文件大小
fseek函数本身不能直接用于查看文件大小,它的主要作用是在文件中移动文件指针的位置。要查看文件大小,可以使用C语言中的另一个函数——fseek和ftell的结合使用。
具体的实现方法是:
1. 使用fseek函数将文件指针移动到文件的末尾位置,可以使用fseek(fp, 0, SEEK_END)函数来实现。
2. 使用ftell函数获取文件指针的位置,这个位置就是文件的大小,可以使用size_t size = ftell(fp)函数来获取文件的大小。
3. 将文件指针移动回文件的起始位置,以便后续的读写操作。
完整的代码如下:
```c
#include <stdio.h>
int main()
{
FILE *fp = fopen("test.txt", "rb");
if(fp == NULL)
{
printf("File open failed!\n");
return 0;
}
fseek(fp, 0, SEEK_END);
size_t size = ftell(fp);
fseek(fp, 0, SEEK_SET);
printf("The size of file is %u bytes.\n", size);
fclose(fp);
return 0;
}
```
注:以上代码仅适用于二进制文件和文本文件,对于其他类型的文件,文件大小可能无法精确计算。
C语言怎么获取文件大小
可以使用标准库函数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。