获取c中的物理硬盘列表

时间:2012-02-29 02:01:46

标签: c linux hard-drive

人们,我需要在Linux系统上获取用C语言连接的硬盘列表:

示例,在具有2个IDE磁盘和1个SATA磁盘的计算机上运行程序。

./a.out

出要求:

/dev/hda
/dev/hdb
/dev/sda

帮助?

5 个答案:

答案 0 :(得分:1)

使用libsysfs,这是一种向内核查询所有类型的附加设备的推荐方法。

答案 1 :(得分:0)

最简单的方法是简单地阅读并解析/proc/partitions

答案 2 :(得分:0)

也许你可以参考fdisk的源代码。 关注这个网站: ftp://ftp.gnu.org/gnu/fdisk

答案 3 :(得分:0)

FILE *fp = popen("fdisk -l | grep \"Disk /\" | awk '{print $2};' | sed 's/://'", "r");
while(fgets(path, sizeof(path) -1,fp) != NULL)
//your code
pclose(fp);

答案 4 :(得分:0)

命令行
  “ls / sys / block /”

会将输出返回为:

  

sda sdb sdc

从那里,您可以创建一个脚本将其传输到文件,然后将该文件作为数组或链接列表读入,以操作您认为合适的数据(例如在前面添加/ dev /列表中的所有设备名称。

相关问题