代码之家  ›  专栏  ›  技术社区  ›  Andrew

如何在C中找到已安装的USB闪存驱动器的大小?

  •  6
  • Andrew  · 技术社区  · 17 年前

    我在嵌入式linux系统(内核2.6.23)的/mnt上安装了一个闪存驱动器设备(/dev/sda1)。使用C如何计算驱动器的大小?

    3 回复  |  直到 17 年前
        1
  •  8
  •   unwind    10 年前

    在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);
    
        2
  •  3
  •   Alex B    17 年前

    1. /sys/block/sda/size
    2. 此设备上的逻辑分区: /sys/block/sda/sda1/size

    该设备还不需要安装。

        3
  •  0
  •   Geo    17 年前

    如果使用外部工具没有问题,请执行以下操作:

    df -h | grep -i /dev/sda1

    popen ,并使用 斯特托克