在Mac OS X上试试这个(别担心,它不会让您的计算机崩溃,只是旋转):
printf "\314" | od -c
似乎字符0314
以某种方式欺骗od
在其默认的Unicode模式(!)中寻找进一步的输入,但没有。我稍微浏览了一下来源:http://www.opensource.apple.com/source/shell_cmds/shell_cmds-175/hexdump/conv.c
似乎这个错误就在goto retry;
,但我不确定。我的问题是:这真的是错误所在,你会如何解决?
对于奖励积分,这是一个完全崩溃的命令,由于2006年Free BSD bugs mailing list报告了另一个错误:
printf "\314\217" | od -c
这仍然没有在Mac OS X中修复,显然是not in FreeBSD either,但至少它不是infinite loop!这个让我很奇怪,因为不仅仅是导致它的这两个字符 - 你可以在各种大型二进制文件上运行od -c
并观察它崩溃。自2006年以来人们真的不使用od
吗?