gpt4 book ai didi

c - 如何在 Linux 中以编程方式获取磁盘名称(如 "/dev/sda"或 "/dev/sdb")?

转载 作者:太空狗 更新时间:2023-10-29 11:18:25 26 4
gpt4 key购买 nike

我正在尝试查找与磁盘和分区相关的信息。以下是我的代码。但问题是,我通过命令行从“/proc/partitions”查询磁盘名称来传递磁盘名称。是否有任何 api 也可以给我磁盘名称。

#include <stdio.h>
#include <stdlib.h>
#include <err.h>
#include <blkid/blkid.h>

int main (int argc, char *argv[])
{
blkid_probe pr;
blkid_partlist ls;
int nparts, i;

pr = blkid_new_probe_from_filename(argv[1]);
if (!pr)
err(2, "faild to open device %s", argv[1]);

ls = blkid_probe_get_partitions(pr);
nparts = blkid_partlist_numof_partitions(ls);

for (i = 0; i < nparts; i++)
{
blkid_partition par = blkid_partlist_get_partition(ls, i);
printf("PartNo = %d\npart_start = %llu\npart_size = %llu\npart_type = 0x%x\n",
blkid_partition_get_partno(par),
blkid_partition_get_start(par),
blkid_partition_get_size(par),
blkid_partition_get_type(par));
}

blkid_free_probe(pr);
return 0;

}

最佳答案

我使用的一种方法是从 lshw 中解析信息:

lshw -class disk |grep "logical name"

另一种方法是检查 ls/sys/block/sd*

关于c - 如何在 Linux 中以编程方式获取磁盘名称(如 "/dev/sda"或 "/dev/sdb")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com