'\" t .\" Title: nvme-id-ctrl .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 02/16/2026 .\" Manual: NVMe Manual .\" Source: NVMe .\" Language: Persian .\" .TH "NVME\-ID\-CTRL" "1" "02/16/2026" "NVMe" "راهنمای NVMe" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" nvme-id-ctrl \- ارسال دستور شناسایی کنترلر NVMe و بازگرداندن نتیجه و ساختار .SH "خلاصه دستور (SYNOPSIS)" .sp .nf \fInvme id\-ctrl\fR [\-\-vendor\-specific | \-V] [\-\-raw\-binary | \-b] [\-\-output\-format= | \-o ] [\-\-verbose | \-v] .fi .SH "توضیحات (DESCRIPTION)" .sp برای دستگاه NVMe داده‌شده، یک دستور شناسایی کنترلر (identify controller) ارسال می‌کند و نتیجه و ساختار بازگردانده‌شده را ارائه می‌دهد\&. .sp پارامتر الزامی است و می‌تواند دستگاه کاراکتری NVMe (مانند: /dev/nvme0) یا یک دستگاه بلوکی فضای‌نام (مانند: /dev/nvme0n1) باشد\&. .sp در صورت موفقیت، بسته به فلگ‌های گزینه، ساختار ممکن است به یکی از چندین روش بازگردانده شود؛ ساختار می‌تواند توسط برنامه تجزیه شود یا بافر خام در stdout چاپ شود\&. .SH "گزینه‌ها (OPTIONS)" .PP \-b, \-\-raw\-binary .RS 4 چاپ بافر خام در خروجی استاندارد (stdout)\&. ساختار توسط برنامه تجزیه نمی‌شود\&. این گزینه بر گزینه‌های vendor specific و human readable تقدم دارد و آن‌ها را لغو می‌کند\&. .RE .PP \-V, \-\-vendor\-specific .RS 4 علاوه بر تجزیه فیلدهای شناخته‌شده، این گزینه بخش اختصاصی سازنده (vendor specific) ساختار را به صورت هگزادسیمال همراه با تفسیر اسکی دامپ می‌کند\&. .RE .PP \-H, \-\-human\-readable .RS 4 این گزینه بسیاری از فیلدهای بیتی را تجزیه کرده و در قالب‌های خوانا برای انسان قالب‌بندی می‌کند\&. .RE .PP \-o , \-\-output\-format= .RS 4 تنظیم قالب گزارش به \fInormal\fR، \fIjson\fR یا \fIbinary\fR\&. در هر زمان تنها یک قالب خروجی قابل استفاده است\&. .RE .PP \-v, \-\-verbose .RS 4 افزایش جزئیات اطلاعات در خروجی\&. .RE .SH "مثال‌ها (EXAMPLES)" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} تفسیر بافر بازگردانده‌شده توسط برنامه و نمایش فیلدهای شناخته‌شده در قالبی خوانا برای انسان: .sp .if n \{\ .RS 4 .\} .nf # nvme id\-ctrl /dev/nvme0 .fi .if n \{\ .RE .\} .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} علاوه بر نمایش فیلدهای شناخته‌شده، برنامه فیلد منحصربه‌فرد سازنده را نیز نمایش دهد: .sp .if n \{\ .RS 4 .\} .nf # nvme id\-ctrl /dev/nvme0 \-\-vendor\-specific # nvme id\-ctrl /dev/nvme0 \-V .fi .if n \{\ .RE .\} .sp دستور فوق بافر \fIvs\fR را به صورت هگزادسیمال دامپ می‌کند، زیرا نحوه تفسیر آن را نمی‌داند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} بازگرداندن ساختار خام به صورت دودویی (binary) توسط برنامه: .sp .if n \{\ .RS 4 .\} .nf # nvme id\-ctrl /dev/nvme0 \-\-raw\-binary > id_ctrl\&.raw # nvme id\-ctrl /dev/nvme0 \-b > id_ctrl\&.raw .fi .if n \{\ .RE .\} .sp عدم تغییر مسیر خروجی استاندارد (stdout) هنگام استفاده از این حالت احتمالاً ایده خوبی نیست\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} همچنین ممکن است بخواهید داده‌ها را به برنامه دیگری ارسال کنید که بتواند بافر خام را تجزیه کند\&. .sp .if n \{\ .RS 4 .\} .nf # nvme id\-ctrl /dev/nvme0 \-\-raw\-binary | nvme_parse_id_ctrl .fi .if n \{\ .RE .\} .sp برنامه تجزیه‌کننده در مثال بالا می‌تواند برنامه‌ای باشد که ساختار را به شیوه دلخواه شما نشان دهد\&. برنامه زیر نمونه‌ای از این دست است که آن را تجزیه می‌کند و می‌تواند خروجی را از طریق لوله (pipe)، \*(Aq|\*(Aq، همان‌طور که در مثال بالا نشان داده شده دریافت کند، یا می‌توانید با \*(Aqcat\*(Aq یک بافر خروجی ذخیره‌شده را به آن هدایت کنید\&. .RE .sp .if n \{\ .RS 4 .\} .nf /* File: nvme_parse_id_ctrl\&.c */ #include #include #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))) return 1; printf("vid : %#x\en", ctrl\->vid); printf("ssvid : %#x\en", ctrl\->ssvid); return 0; } .fi .if n \{\ .RE .\} .SH "NVME" .sp بخشی از مجموعه nvme\-user .SH "همچنین ببینید (SEE ALSO)" .BR nvme (1)