У меня есть 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. Как это сделать?
Можно использовать несколько операторов печати в команде 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