我在嵌入式Linux系统(内核2.6.23)上安装了/ mnt的闪存驱动器设备(/ dev / sda1)。使用C我如何计算出驱动器的大小?
答案 0 :(得分:8)
在Linux上,如果您不担心可移植性(C不了解驱动器,那么任何此类特定代码都将无法移植),请使用statfs()
:
struct statfs fsb;
if(statfs("/mnt", &fsb) == 0)
printf("device has %ld blocks, each %ld bytes\n", fsb.f_blocks, fsb.f_bsize);
答案 1 :(得分:3)
读取并解析设备的sysfs条目中的数字。在你的情况下,
/sys/block/sda/size
/sys/block/sda/sda1/size
无需安装设备。
答案 2 :(得分:0)