Como enviar um byte como entrada múltipla para um arquivo no Ubuntu [closed]

2

Eu tenho um 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);
}

Eu uso um pipeline para enviar o primeiro byte 0x01:

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

Mas só pode enviar uma vez, Eu quero enviar: primeiro byte é 0x31 e segundo byte 0x32, para que o programa irá imprimir seu char: 1 e 2. Como fazer isso?

    
por QChí Nguyễn 07.03.2017 / 13:19

1 resposta

3

Você pode usar várias instruções de impressão no comando python:

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

Ou uma única declaração de impressão, usando uma nova linha:

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

Ou vários comandos python agrupados antes do pipe:

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

Parece que os caracteres não devem ser separados por uma nova linha, neste caso:

python -c 'print "\x31\x32"' | ./file
    
por muru 07.03.2017 / 13:59