c语言中获取文件大小,只能以只读的方式打开吗
时间: 2024-03-10 21:43:12 浏览: 25
在C语言中,获取文件大小的方法有很多种,但是其中比较常用的方法是使用fstat函数。而使用fstat函数时,需要先以只读的方式打开文件,然后才能获取文件的大小等信息。
具体来说,可以按照以下步骤获取文件大小:
1. 使用fopen函数以只读的方式打开文件,返回文件指针。
2. 使用fstat函数获取文件信息,包括文件大小等。
3. 关闭文件。
示例代码如下:
```
#include <stdio.h>
#include <sys/stat.h>
int main()
{
FILE *fp;
struct stat fileStat;
long fileSize;
fp = fopen("test.txt", "r");
if(fp == NULL)
{
printf("Failed to open file.\n");
return 1;
}
if(fstat(fileno(fp), &fileStat) < 0)
{
printf("Failed to get file information.\n");
return 1;
}
fileSize = fileStat.st_size;
printf("File size: %ld bytes.\n", fileSize);
fclose(fp);
return 0;
}
```
注意:在使用fstat函数时,需要使用fileno函数获取文件描述符,因为fstat函数需要的是文件描述符而不是文件指针。