我试图使用ANSI引号将二进制字符串发送到程序。这样做很好:
echo 但是,如果数据中有NUL字符(ASCII代码0),它将终止字符串:echo 我知道C语言中的字符串是空终止的,所以我猜想类似的约束适用于这个引用方法。有办法把ASCII 0发送到我的程序吗?\x23\x51\x66\x39\x01\x5f\x2f' | cat -v
# output: #Qf9^A_/但是,如果数据中有NUL字符(ASCII代码0),它将终止字符串:A1我知道C语言中的字符串是空终止的,所以我猜想类似的约束适用于这个引用方法。有办法把ASCII 0发送到我的程序吗?\x23\x00\x66\x39\x01\x5f\x2f' | cat -v
# output: #我知道C语言中的字符串是空终止的,所以我猜想类似的约束适用于这个引用方法。
有办法把ASCII 0发送到我的程序吗?
\x23\x51\x66\x39\x01\x5f\x2f' | cat -v # output: #Qf9^A_/
但是,如果数据中有NUL字符(ASCII代码0),它将终止字符串:
A1
我知道C语言中的字符串是空终止的,所以我猜想类似的约束适用于这个引用方法。
有办法把ASCII 0发送到我的程序吗?
发布于 2021-11-01 20:33:02
尝试使用printf而不是echo。
$ printf "\x23\x00\x66\x39\x01\x5f\x2f" | od -c
0000000 # \0 f 9 001 _ /https://unix.stackexchange.com/questions/675732
复制相似问题