人们,我需要在Linux系统上获取用C语言连接的硬盘列表:
示例,在具有2个IDE磁盘和1个SATA磁盘的计算机上运行程序。
./a.out
出要求:
/dev/hda
/dev/hdb
/dev/sda
帮助?
答案 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 /列表中的所有设备名称。