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

相關內容