请用c写出filesize函数的代码
时间: 2023-09-21 18:06:31 浏览: 39
### 回答1:
下面是一个实现获取文件大小的 `filesize` 函数的 C 代码:
```
#include <stdio.h>
long int filesize(char filename[]) {
FILE *fp = fopen(filename, "rb"); // 以二进制方式打开文件
if (fp == NULL) {
printf("无法打开文件!\n");
return -1; // 返回-1表示出错
}
fseek(fp, 0, SEEK_END); // 将文件指针移到文件末尾
long int size = ftell(fp); // 获取文件大小
fclose(fp); // 关闭文件
return size; // 返回文件大小
}
int main() {
char filename[] = "example.txt";
long int size = filesize(filename);
if (size != -1) {
printf("文件大小为 %ld 字节\n", size);
}
return 0;
}
```
使用 `fopen` 函数打开文件,以二进制方式读取文件。然后使用 `fseek` 函数将文件指针移到文件末尾,再使用 `ftell` 函数获取文件大小。最后使用 `fclose` 函数关闭文件,并返回文件大小。在 `main` 函数中,我们调用 `filesize` 函数并打印出文件大小。
### 回答2:
下面是用C语言编写的filesize函数代码:
```c
#include <stdio.h>
long int filesize(const char* filename) {
FILE* file = fopen(filename, "rb");
if (file == NULL) {
printf("无法打开文件\n");
return -1;
}
fseek(file, 0L, SEEK_END);
long int size = ftell(file);
fclose(file);
return size;
}
int main() {
const char* filename = "example.txt";
long int size = filesize(filename);
if (size != -1) {
printf("文件 %s 的大小为 %ld 字节\n", filename, size);
}
return 0;
}
```
运行该程序,会打开一个名为example.txt的文件,并计算文件的大小(以字节为单位)。如果文件不能打开,会输出一条错误信息。最后,会打印出文件的大小。请确保example.txt文件存在于相同的目录下,且包含一些内容。
### 回答3:
下面是使用C语言编写的filesize函数的代码:
```c
#include <stdio.h> // 导入标准输入输出头文件
#include <stdlib.h> // 导入标准库头文件
// 声明函数
long filesize(const char* filename);
int main() {
const char* filename = "example.txt"; // 文件名
long size = filesize(filename); // 调用filesize函数获取文件大小
printf("文件 %s 的大小为 %ld 字节\n", filename, size);
return 0;
}
// filesize函数的实现
long filesize(const char* filename) {
FILE* file = fopen(filename, "rb"); // 打开文件
if (file == NULL) { // 打开文件失败
fprintf(stderr, "无法打开文件 %s\n", filename);
exit(1);
}
fseek(file, 0, SEEK_END); // 将文件指针定位到文件末尾
long size = ftell(file); // 获取文件指针的位置(即文件大小)
fclose(file); // 关闭文件
return size; // 返回文件大小
}
```
以上代码定义了一个filesize函数,该函数接收文件名作为参数,打开文件并通过fseek和ftell函数获取文件大小。在main函数中调用filesize函数,并将获取的文件大小打印输出。