我想要的只是打印我正在使用的字节的文件大小
DIR *d;
struct dirent *dir;
d= opendir(absolute_path);
while((dir= readdir(d))!=NULL){
printf("%s\t %d\t %u\n",dir->d_name,dir->d_type,(int long long )dir->d_off);
}
类型d_off的打印off_t
错误。对于323,388 bytes
它打印的文件1296623584
我认为这是问题所在。我试过很多铸件,如%d
,%s
,%u
,%llu
...什么是正确的铸造?
编辑:用于查找文件大小的正确函数是lstat()
使用stat结构。
正如@Andrey指出的那样,d_off的值并不总是有用的,甚至不存在。例如,OSX没有它。使用呼叫stat
代替。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句