[英]How do I find the size of mounted USB flash drive in C?
I have a flash drive device (/dev/sda1) mounted to /mnt on an embedded linux system (kernel 2.6.23). 我在嵌入式Linux系统(内核2.6.23)上安装了/ mnt的闪存驱动器设备(/ dev / sda1)。 Using C how do I work out the size of the drive?
使用C我如何计算出驱动器的大小?
On Linux, if you're not worried about portability (C doesn't know about drives, so any such specific code will be unportable), use statfs()
: 在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);
Read and parse a number in device's sysfs entry. 读取并解析设备的sysfs条目中的数字。 In your case,
在你的情况下,
/sys/block/sda/size
/sys/block/sda/size
/sys/block/sda/sda1/size
/sys/block/sda/sda1/size
The device does not have to be mounted yet. 该设备不必安装。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.