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

use*_*814 6 c c++ linux uuid

我是Linux编程的新手.

我的问题是:

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

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

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

先感谢您.

Mat*_*Mat 2

一般方法是:

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

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