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

发布于 2024-10-21 23:29:08 字数 372 浏览 3 评论 0原文

我对 Linux 编程非常陌生。

我的问题是:

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

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

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

提前谢谢您。

I am very much new to Linux programming.

My questions are:

  • Is there any way to read the UUID of a device or partition in Linux programmatically?
  • Is there any C/C++ API for user-space applications?

I found some commands sudo vol_id --uuid /dev/sda1, sudo blkid and ls -l /dev/disk/by-uuid/. But all of them are commands which need to run in a terminal. But I need to achieve this from a C/C++ program.

Can some one help me with this problem. (FYI: I need to read UUID of the root filesystem ("/") where Linux has been installed.)

Thank you in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2024-10-28 23:29:08

一般方法是:

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

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

The general approach would be:

  • find out what device your / is on by parsing /etc/mtab for example
  • go through the /dev/disks/by-uuid directory (using opendir/readdir/closedir) and find which one points to that device.

See the readlink function for getting the target of a symbolic link. You'll find plenty of code examples for parsing text files on this site or with your favorite search engine.

我的奇迹 2024-10-28 23:29:08

由于 blkid 已经做到了,您也可以看看它是如何工作的并窃取解决方案,如果您遵守 util-linux 的许可证 (GPLv2)。

Since blkid already does it, you could also just see how it works and pilfer the solution, if you abide by util-linux's license (GPLv2).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文