libblkid
私はこのライブラリを使って既存のブロックデバイスを分析する方法を知っています。メモリ範囲の分析に使用したいと思います。今後ブロックデバイスに書き込みます。このような:
char block[4096];
... writing into the block
blkid_probe pr = blkid_new_probe_from_address(block);
... calling usual libblkid function on the pr
もちろんそうではありません。ライブラリのコアに入らずにblkid_new_probe_from_address
既存の関数を使用してそのような関数を生成する方法はありますか?libblkid
それとも他のツールキットがこれを達成できますか?
答え1
私は自分の質問に答えています。私が望むことをするために、このlibblkid
機能mkstemp
の中でいくつかの機能を使うことができました。この関数は一時ファイル(実際にはメモリにあります)を作成して開きます。ファイルにブロックを書き込み、ファイルblkid_probe_set_device
のファイル記述子を使用して関数を呼び出す必要があります。図書館ではこの人工ファイルを喜んで使うようです。コードは次のとおりです(単純化のためにすべてのエラーチェックを省略しました)。
char block[4096];
...
char filename[] = "/tmp/fileXXXXXX";
const int fd = mkstemp(filename);
write(fd, block, sizeof(block));
...
blkid_probe pr = blkid_new_probe();
blkid_probe_set_device(pr, fd, 0, 0);
...
... (analysis using various libblkid functions)
...
close(fd);
unlink(filename);