如何计算文件的大小(以字节为单位)?
#include <stdio.h>
unsigned int fsize(char* file){
//what goes here?
}
发布于 2018-04-02 14:27:48
基于NilObject的代码:
#include <sys/stat.h>
off_t fsize(const char *filename) {
struct stat st;
if (stat(filename, &st) == 0)
return st.st_size;
return -1;
}
如果你想fsize()
若要打印错误消息,可以使用以下命令:
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
off_t fsize(const char *filename) {
struct stat st;
if (stat(filename, &st) == 0)
return st.st_size;
fprintf(stderr, "Cannot determine size of %s: %s\n",
filename, strerror(errno));
return -1;
}
发布于 2018-04-02 15:23:55
不要用int
。这些天,超过2G的文件像污垢一样常见。
不要用unsigned int
。大小超过4G的文件很常见,。
标准库定义off_t
作为一个无符号64位整数,这是每个人都应该使用的。我们可以在几年内将其重新定义为128位,当我们开始有16个艾字节文件时。
如果你在windows上,你应该用GetFileSizeEx。
https://stackoverflow.com/questions/-100003765
复制相似问题