NUL-Zeichen und ANSI-C-Anführungszeichen

NUL-Zeichen und ANSI-C-Anführungszeichen

Ich versuche, eine Binärzeichenfolge mit ANSI-C-Anführungszeichen an ein Programm zu senden. Das funktioniert einwandfrei:

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

Wenn die Daten jedoch ein NUL-Zeichen (ASCII-Code 0) enthalten, wird die Zeichenfolge beendet:

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

Mir ist bewusst, dass Zeichenfolgen in der Sprache C nullterminiert sind, daher gehe ich davon aus, dass für diese Anführungszeichenmethode eine ähnliche Einschränkung gilt.

Gibt es eine Möglichkeit, ASCII 0 an mein Programm zu senden?

Antwort1

Versuchen Sie es mit printfanstelle von echo.

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

verwandte Informationen