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 _ /