ftell可以获取文件的大小是嘛
时间: 2024-03-14 21:43:53 浏览: 75
虽然 ftell 函数可以获取当前文件指针的位置,但是它并不能直接获取文件的大小。因为文件大小是指文件中实际存储的数据量,而文件指针的位置并不一定等于文件大小。
要获取文件的大小,可以使用 fseek 函数将文件指针移动到文件末尾,然后再使用 ftell 函数获取文件指针的位置,这个位置就是文件的大小。示例如下:
```c
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
// 处理文件打开失败的情况
}
fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
long size = ftell(fp); // 获取文件指针的位置,也就是文件的大小
printf("文件大小为 %ld 字节\n", size);
fclose(fp);
```
在这个示例中,首先使用 fopen 函数打开了一个名为 example.txt 的文件。然后使用 fseek 函数将文件指针移动到文件末尾,第二个参数为0表示相对文件末尾的偏移量为0,即将指针移动到文件末尾。最后使用 ftell 函数获取文件指针的位置,也就是文件的大小,存储在变量 size 中。最后输出文件大小即可。
相关问题
c语言获取文件大小
你可以使用 C 语言中的标准库函数 `fseek` 和 `ftell` 来获取文件大小。
具体的代码如下所示:
```c
#include <stdio.h>
long getFileSize(FILE *file) {
long size;
fseek(file, 0L, SEEK_END);
size = ftell(file);
rewind(file);
return size;
}
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("Failed to open file.\n");
return 1;
}
long size = getFileSize(file);
printf("File size: %ld bytes.\n", size);
fclose(file);
return 0;
}
```
上述代码中的 `getFileSize` 函数接收一个文件指针作为参数,然后使用 `fseek` 将文件指针移动到文件末尾,使用 `ftell` 获取文件指针的当前位置,然后再使用 `rewind` 将文件指针移动回文件开头。最后,函数将文件大小返回给调用者。
在 `main` 函数中,我们打开了一个名为 `example.txt` 的文件,并将其传递给 `getFileSize` 函数来获取文件大小。最后,我们关闭文件并输出文件大小。
fseek获取文件大小
您可以使用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"的文件的大小。请将代码中的文件名替换为您要操作的实际文件名。完成后,编译并运行代码,即可得到文件的大小。