如何在C中找到安装的USB闪存驱动器的大小?
答
在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);
答
读取并解析了一些设备的sysfs条目。在你的情况,
- 全面的设备(所有分区和分区表):
/sys/block/sda/size
- 此设备上的逻辑分区:
/sys/block/sda/sda1/size
的设备没有被安装还。
如果传递给statfs的路径是“/ mnt” – Andrew 2009-09-28 14:44:54