我们如何使用fgetpos()来获取文件的大小

时间:2014-03-26 16:32:02

标签: c gcc

我们如何使用fgetpos()来获取文件的大小?我实际上想要显示一个大文件(3-10 Gb)的文件大小

3 个答案:

答案 0 :(得分:3)

尝试

FILE * fp = fopen(filename, "r");

// seek to the end
fseek(fp, 0, SEEK_END);

fpos_t flesize;
// get current position
fgetpos(fp, &flesize);

我宁愿推荐fstat

struct stat file_stat;
fstat(fileno(fp), &file_stat);

printf("File size : %zd bytes\n", file_stat.st_size);

答案 1 :(得分:0)

使用fgetpos(),文件指针必须遍历整个文件(3 - 10 GB)!使用简单的系统调用stat / fstat时,可​​以通过结构成员st_size获得大小。

答案 2 :(得分:0)

使用fstat()

File *fd = fopen("filename");
struct stat s;
fstat(fileno(fd), &s);
printf("file size: %lu\n", s.st_size);