如何以编程方式获取linux中设备/分区的uuid?

时间:2011-03-13 07:13:27

标签: c++ c linux uuid

我对Linux编程非常陌生。

我的问题是:

  • 有没有办法以编程方式读取Linux中设备或分区的UUID?
  • 是否有用于用户空间应用程序的C / C ++ API?

我找到了一些命令sudo vol_id --uuid /dev/sda1sudo blkidls -l /dev/disk/by-uuid/。但所有这些都是需要在终端中运行的命令。但我需要从C / C ++程序中实现这一点。

有人可以帮我解决这个问题。 (仅供参考:我需要读取已安装Linux的根文件系统(“/”)的UUID。)

提前谢谢。

2 个答案:

答案 0 :(得分:1)

一般方法是:

  • 例如,通过解析/etc/mtab找出您所使用的设备
  • 浏览/dev/disks/by-uuid目录(使用opendir/readdir/closedir)并找到指向该设备的目录。

请参阅readlink函数以获取符号链接的目标。您将找到大量代码示例,用于解析此站点上的文本文件或您最喜欢的搜索引擎。

答案 1 :(得分:0)

由于blkid已经做到了,你也可以看看它是如何工作的并且可以解决问题,如果你遵守util-linux的许可证(GPLv2)。