NUL文字とANSI-C引用符

NUL文字とANSI-C引用符

ANSI-C引用符付き文字列を使用してプログラムにバイナリ文字列を送信しようとしています。これはうまくいきます:

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

ただし、データにNUL文字(ASCIIコード0)が含まれている場合、文字列は終了します。

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

Cの文字列はnullで終了することがわかっているので、この参照メソッドにも同様の制約が適用されると推測されます。

私のプログラムにASCII 0を送信する方法はありますか?

答え1

printf代わりに試してみてくださいecho

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

関連情報