Caractere NUL e citação ANSI-C

Caractere NUL e citação ANSI-C

Estou tentando enviar uma string binária para um programa usando strings entre aspas ANSI-C. Isso funciona bem:

echo $'\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/

Porém, se eu tiver um caractere NUL (código ASCII 0) nos dados, ele encerra a string:

echo $'\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #

Estou ciente de que as strings na linguagem C são terminadas em nulo, então acho que uma restrição semelhante se aplica a esse método de cotação.

Existe uma maneira de enviar ASCII 0 para o meu programa?

Responder1

Tente usar printfem vez de echo.

$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000   #  \0   f   9 001   _   /

informação relacionada