これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド nvme-id-ctrl です。
プログラム:
NAME
nvme-id-ctrl - NVMe 識別コントローラーを送信し、結果と構造を返します。
SYNOPSIS
nvme id-ctrl [-v | --ベンダー固有] [-b | --raw-バイナリ]
DESCRIPTION
指定された NVMe デバイスに対して、コントローラの識別コマンドを送信し、結果を提供します
そして返された構造体。
NS パラメータは必須であり、NVMe文字デバイスのいずれかです(例:
/ dev / nvme0)、または名前空間ブロックデバイス(例:/ dev / nvme0n1)。
成功すると、オプションに応じていくつかの方法のいずれかで構造体が返されます。
フラグ。 構造はプログラムによって解析されるか、生のバッファーが出力される可能性があります。
stdout。
OPTIONS
-b、-raw-binary
生のバッファーを標準出力に出力します。 構造はプログラムによって解析されません。 これは、
ベンダー固有の人間が判読できるオプション。
-v、--ベンダー固有
このオプションは、既知のフィールドの解析に加えて、ベンダー固有の領域をダンプします。
ASCII 解釈を使用した XNUMX 進数の構造。
-H、 --人間が読める形式
このオプションは、ビット フィールドの多くを解析し、人間が判読できる形式にフォーマットします。
例
· 返されたバッファをプログラムに解釈させ、既知のフィールドを人間が表示できるようにします。
読み取り可能な形式:
# nvme id-ctrl /dev/nvme0
· 既知のフィールドの表示に加えて、ベンダー固有のフィールドを表示するプログラムがあります。
フィールド:
# nvme id-ctrl /dev/nvme0 --ベンダー固有
# nvme id-ctrl /dev/nvme0 -v
上記はダンプします vs バッファは解釈方法がわからないため、XNUMX 進数でバッファされます。
· プログラムが生の構造をバイナリで返すようにします。
# nvme id-ctrl /dev/nvme0 --raw-binary > id_ctrl.raw
# nvme id-ctrl /dev/nvme0 -b > id_ctrl.raw
このモードを使用するときにstdoutをリダイレクトしないことはおそらく悪い考えです。
· あるいは、生データを解析できる別のプログラムにデータを送信することもできます。
バッファ。
# nvme id-ctrl /dev/nvme0 --raw-binary | nvme_parse_id_ctrl
上記の例の解析プログラムは、構造を次の形式で表示するプログラムにすることができます。
好きなように。 次のプログラムは、それを解析して次のことができる例です。
上の例に示すように、パイプ「|」を介して出力を受け入れるか、「cat」を使用することもできます。
保存された出力バッファー。
/* ファイル: nvme_parse_id_ctrl.c */
#含む
#include
#含む
int main(int argc, char **argv)
{
unsigned char buf[sizeof(struct nvme_id_ctrl)];
struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf;
if (read(STDIN_FILENO, buf, sizeof(buf)))
1リターン;
printf("vid : %#x\n", ctrl->vid);
printf("ssvid : %#x\n", ctrl->ssvid);
0リターン;
}
NVME
nvme-userスイートの一部
onworks.net サービスを使用してオンラインで nvme-id-ctrl を使用する