我有2个程序:
x
- 提示用户输入stdin
。
binary
- 打印一些东西到stdout
,它打印的东西由各种原始二进制字节组成,我的终端编码(UTF-8)不完全支持这些字节。所以我无法正常运行它./binary | ./x
,这会导致提供错误的输入,x
因为部分输入由\x90
(NOP) 组成,我的终端将其替换为替换字符。
我如何向程序提供x
另一个文件生成的原始二进制数据(在本例中binary
)?
答案1
你完全按照你描述的去做,./binary | ./x
。您的终端对输入的字符不满意\x90
,但这并不意味着./x
会。
作为测试,您可以尝试一下./binary | od -a
,您会发现为其设计的程序可以读取给您的终端带来麻烦的字节。您还可以尝试使用od -x
andod -b
作为替代方案od -a
(您可能更喜欢这些选项的表示二进制数据的方法)。