我一直在尝试使用using ()来获取linux系统上的硬盘大小。
我有一个函数,它应该返回正确的大小:
unsigned long long getsize(FILE *fp){
unsigned long long prev=ftell(fp);
fseek(fp,0,SEEK_END);
unsigned long long size=ftell(fp);
fseek(fp,prev,SEEK_SET);
return size;
}
但是当我在硬盘上使用它时,它会返回18446744073709551615或2^64-1.
它似乎并不总是把它还回
我的硬盘坏了,一家修复公司把所有的东西都复制到了另一个新的硬盘上。
我想他们用的是dd或类似的。
它有两个xfs分区。但是,现在我只能骑第一辆了。
如果我试图查看带有gparted的分区,它会说:
Can't have a partition outside the disk
似乎新的磁盘比原来的(不同的型号)要小一些。
最新消息,我证实了我的怀疑:
fdisk -l -u=sectors
Disk /dev/sdd: 9,1 TiB, 10000797794304 bytes, 19532808192 sectors
Disk model: Elements 25A3