我在看libblkid并对文档感到困惑.有人可以给我一个例子,说明如何使用这个库找到根linux分区的UUID吗?
最佳答案
它就像手册看起来一样简单:你创建一个探针结构,初始化它,向它询问一些信息,然后释放它.您可以将前两个步骤合二为一.这是一个工作计划:
#include dio.h>
#include 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_value将uuid设置为指向属于pr结构的字符串,这就是参数类型为const char *的原因.如果你需要,你可以将它复制到你自己管理的char *,但只是传递给printf,这是不需要的. blkid_probe_lookup_value的第四个参数允许您获取返回值的长度,以备您需要时使用. blkid_do_probe,blkid_do_safeprobe和blkid_do_fullprobe之间存在一些细微的差别,但是如果设备具有已知的文件系统并且您只想将UUID拉出来,则应该从blkid_do_probe获取第一个结果.