gpt4 book ai didi

linux - 使用 libblkid 查找分区的 UUID

转载 作者:IT王子 更新时间:2023-10-29 01:02:54 31 4
gpt4 key购买 nike

我在看 libblkid并对文档感到困惑。有人可以为我提供一个示例,说明如何使用此库找到根 Linux 分区的 UUID 吗?

最佳答案

它几乎和手册中描述的一样简单:您创建一个探测结构,对其进行初始化,询问它一些信息,然后释放它。您可以将前两个步骤合并为一个。这是一个工作程序:

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

int main (int argc, char *argv[]) {
blkid_probe pr;
const char *uuid;

if (argc != 2) {
fprintf(stderr, "Usage: %s devname\n", argv[0]);
exit(1);
}

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

blkid_do_probe(pr);
blkid_probe_lookup_value(pr, "UUID", &uuid, NULL);

printf("UUID=%s\n", uuid);

blkid_free_probe(pr);

return 0;
}

blkid_probe_lookup_valueuuid 设置为指向属于 pr 结构的字符串,这就是参数类型为 的原因常量字符 *。如果需要,您可以将其复制到您自己管理的 char *,但如果只是传递给 printf,则不需要这样做。 blkid_probe_lookup_value 的第四个参数允许您获取返回值的长度,以备不时之需。 blkid_do_probeblkid_do_safeprobeblkid_do_fullprobe 之间存在一些细微差别,但在设备具有已知文件系统并且您只想拉取的情况下从中提取 UUID,从 blkid_do_probe 中获取第一个结果应该可以。

关于linux - 使用 libblkid 查找分区的 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6748429/

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