Как отправить байт как множественный вход в файл в Ubuntu [закрыто]

У меня есть file.c:

#include <stdio.h>
void main(){
        char a,b;
        printf("Input your character: \n");
        scanf("%c",&a);
        printf("Input your second character: \n");
        scanf("%c",&b);
        printf("You char: %c %c\n",a,b);
}

Я использую конвейер для отправки первого байта 0x01:

python -c "print '\x31'" | ./file

Но он может отправить только один раз, Я хочу послать: первый байт 0x31 и второй байт 0x32, чтобы программа вывела Ваш char: 1 и 2. Как это сделать?

2
задан 14 March 2017 в 01:37

1 ответ

Можно использовать несколько операторов печати в команде Python:

python -c 'print "\x31"; print "\x32"' | ./file

Или единственный оператор печати, с помощью новой строки:

python -c 'print "\x31\n\x32"' | ./file

Или несколько команд Python группировался перед каналом:

(python -c 'print "\x31"'; python -c 'print "\x31"') | ./file

кажется, что символы не должны быть разделены новой строкой, в этом случае:

python -c 'print "\x31\x32"' | ./file
3
ответ дан 2 December 2019 в 02:47

Другие вопросы по тегам:

Похожие вопросы: