我们如何使用fgetpos()
来获取文件的大小?我实际上想要显示一个大文件(3-10 Gb)的文件大小
答案 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);