Estoy intentando enviar una cadena binaria a un programa usando cadenas entre comillas ANSI-C. Esto funciona bien:
echo $'\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/
Sin embargo, si tengo un carácter NUL (código ASCII 0) en los datos, termina la cadena:
echo $'\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #
Soy consciente de que las cadenas en el lenguaje C terminan en nulo, por lo que supongo que se aplica una restricción similar a este método de comillas.
¿Hay alguna manera de enviar ASCII 0 a mi programa?
Respuesta1
Intente usar printf
en lugar de echo
.
$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000 # \0 f 9 001 _ /