私はlibblkidを見ていて、ドキュメントについて混乱していました。誰かが私に、このライブラリを使ってrootのLinuxパーティションのUUIDを見つける方法の例を私に教えてもらえますか?libblkidを使ってパーティションのUUIDを見つける
答えて
マニュアルは見た目ほど簡単です。プローブ構造を作成し、初期化し、情報を求めてから解放します。最初の2つのステップを1つにまとめることができます。
#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_value
セットuuid
引数の型const char *
である理由であるpr
構造に属し、文字列を指すように:これは、作業プログラムです。必要な場合は、自分で管理するchar *
にコピーすることができますが、それは不要です。printf
に渡すだけです。 blkid_probe_lookup_value
の4番目の引数を使用すると、必要に応じて戻り値の長さを取得できます。 blkid_do_probe
とblkid_do_safeprobe
とblkid_do_fullprobe
の間には微妙な違いがありますが、デバイスに既知のファイルシステムがあり、UUIDを取り出したい場合は、blkid_do_probe
の最初の結果を参考にしてください。
まず、rootとしてマウントされているデバイスを探す必要があります。 man getmntent(3)を参照してください。デバイスを知ったら、hobbsの説明に従ってblkid_new_probe_from_filenameを使用します。
#include <stdio.h>
#include <mntent.h>
int main() {
FILE* fstab = setmntent("/etc/mtab", "r");
struct mntent *e;
const char *devname = NULL;
while ((e = getmntent(fstab))) {
if (strcmp("/", e->mnt_dir) == 0) {
devname = e->mnt_fsname;
break;
}
}
printf("root devname is %s\n", devname);
endmntent(fstab);
return 0;
}
これはとても役に立ちます。私はhobbsの投稿と組み合わせて何が起こるかを見ていきます。どうも – HighLife
- 1. BTソケットに使用されているUUIDを見つける
- 2. org.apache.spark.sql.types.DataTypesでuuidを見つけること
- 3. レコードオラクルのパーティションを見つける方法
- 4. MySql - 行が格納されているパーティションを見つける
- 5. parse.ly APIのUUIDパラメータを見つける場所
- 6. Python - コンピュータのUUIDを見つけて変数として設定する方法
- 7. アレイの同等のパーティションを見つける
- 8. elasticsearch/graylog uuid文字列を見つける
- 9. Android特定のBluetoothデバイスのUUIDを見つけよう
- 10. HIVEテーブルで最新のパーティションを見つける方法
- 11. 最新のパーティション値を見つける方法
- 12. ハイブテーブルの最大パーティションを見つけるパフォーマンス
- 13. webを使ってセレンを使ってwebElementを見つける方法
- 14. openCVを使って画像のシルエットを見つける
- 15. Pythonを使って方程式のゼロを見つける
- 16. phpを使ってファイルの拡張子を見つける
- 17. ツリーを使って特定のファイルを見つける方法
- 18. Wampserverを使って私のHTTP POST URLを見つける
- 19. opencvを使って道路のエッジを見つける
- 20. C#を使ってポリゴンの内側軸を見つける
- 21. Pysparkを使ってテキストファイルの改行を見つけるには?
- 22. Boostを使って$ PATH内のexeを見つける方法
- 23. バイナリツリーを使って最大のパスを見つける - javascript
- 24. Javaを使って文中の文章を見つける
- 25. NLTK Python 3を使って特定のBigramを見つける
- 26. CMakeを使ってライブラリ内のシンボルを見つける
- 27. Cocos2dを使ってベクトルの角度を見つける
- 28. sympyを使って式の補完を見つけるには?
- 29. Pythonを使ってウェブサイトの生の見出しを見つけるには?
- 30. max()を使ってリスト内のmax()を見つけ、そのインデックス値を見つける方法?
この例では、パーティションを引数として入力する必要がありますか? ROOTパーティションのUUIDを確認するにはどうすればよいですか? – HighLife
"ROOTパーティション"を定義します。デバイスは '/'にマウントされていますか? – hobbs
はい/ – HighLife