Как использовать произвольный аргумент sg_raw в golang? - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь реплицировать sg_inq через sg_raw

Это используемая команда:

inq_cmd: = exe c .Command ("sg_raw", "-r", "512 "," / dev / sg0 "," 12 00 00 00 60 00 ")

stdoutStderr, err: = read_cmd.CombinedOutput ()

if err != nil {
    log.Fatal(err)
}

fmt.Printf ("% s \ n ", stdoutStderr)

Результатом после выполнения будет Inq КОМАНДА: состояние выхода 1 Неверный байт команды '12 00 00 00 60 00 '

Запросить КОМАНДУ: 28.05.2020 19:42 : 48 статус выхода 1

статус выхода 1 Недействительный байт команды '12 00 00 00 60 00 'Использование: sg_raw [ОПЦИЯ] * УСТРОЙСТВО CDB0 CDB1 ... Опции: -b, --binary Дамп данных в двоичном формате form, даже при записи в stdout -h, --help Показать это сообщение и выйти -i, --infile = IFILE Прочитать данные для отправки из IFILE (по умолчанию: stdin) -k, --skip = LEN Пропустить первые байты LEN при чтении данных для отправки -n, --nosense Не отображать смысловую информацию -o, --outfile = OFILE Записать двоичные данные в OFILE (def: шестнадцатеричный дамп в стандартный вывод) -r, --request = RLEN Запросить до RLEN байтов данных (d ata-in) -R, --readonly Открыть УСТРОЙСТВО только для чтения (по умолчанию: чтение-запись) -s, --send = SLEN Отправить SLEN байтов данных (выход данных) -t, --timeout = SE C Тайм-аут в секундах (по умолчанию: 20) -v, --verbose Увеличить подробность -V, --version Показать информацию о версии и выйти

Можно указать от 6 до 256 командных байтов (по две шестнадцатеричных цифры каждый) и будут отправлены на УСТРОЙСТВО. По умолчанию длины RLEN и SLEN являются десятичными. Принимаются двунаправленные команды.

Простой пример: выполнить ЗАПРОС на / dev / sg0: sg_raw -r 1k / dev / sg0 12 00 00 00 60 00

Что не так в команде? Было бы здорово помочь! Заранее спасибо!

...