2016-03-23 2 views
-1

Я запрашиваю строку, предоставленную пользователем, используя fgets (user_input, input_len, stdin). Как я могу отправить, например, байт, представленный hex \ x04 в программу?Отправка произвольных байтов в fgets из stdin

+0

Это зависит от вашего терминала (или другой системы ввода, которую вы используете). – sidyll

+0

У вас возникла проблема, что '0x04' является контролем-D является EOF? –

+0

@SteveSummit 0x04 описывается как EOT в таблице ascii, это символ, используемый различными протоколами последовательной передачи в качестве конца передачи. Это, однако, не имеет ничего общего с ctrl + d на консоли, которая во многих системах приводит к EOF во входном потоке. – Ctx

ответ

1

Вы можете сделать

$ echo -n -e '\x04' | your-program 

ПРИМЕЧАНИЕ: На POSIX echo только восьмеричные значения разрешены.

1

Если вы можете получить байты, которые вы хотите в файл, вы можете запустить

your-program < file 
Смежные вопросы