【发布时间】:2010-12-02 00:31:12
【问题描述】:
我有一个闪存驱动器设备 (/dev/sda1) 安装到嵌入式 linux 系统(内核 2.6.23)上的 /mnt。使用 C 如何计算驱动器的大小?
【问题讨论】:
我有一个闪存驱动器设备 (/dev/sda1) 安装到嵌入式 linux 系统(内核 2.6.23)上的 /mnt。使用 C 如何计算驱动器的大小?
【问题讨论】:
在 Linux 上,如果您不担心可移植性(C 不了解驱动器,因此任何此类特定代码都将不可移植),请使用 @987654321@:
struct statfs fsb;
if(statfs("/mnt", &fsb) == 0)
printf("device has %ld blocks, each %ld bytes\n", fsb.f_blocks, fsb.f_bsize);
【讨论】:
读取并解析设备的 sysfs 条目中的数字。在你的情况下,
/sys/block/sda/size
/sys/block/sda/sda1/size
设备尚未安装。
【讨论】:
【讨论】:
-h 在这里可能是不必要的,因为输入将被程序读取。由于区分大小写,-i 也是多余的。除此之外——一个良好的符合 LSB(即便携式)的解决方案。