今天一时兴起,我在 VirtualBox 虚拟磁盘映像 (VDI) 文件上运行了“cat”命令。正如预期的那样,控制台上的 stdout 输出了各种乱码。然而,运行命令大约 15 秒后,打印对话框打开了!它显示了一个只有更多机器代码的页面,可以打印了。当我关闭对话框时,文件继续照常打印。
我对此感到很困惑。我正在运行 macOS Sierra 10.12.6。有人知道这种行为是怎么发生的吗?
答案1
MacOS 的终端应用程序似乎没有这样做,但是iTerm2响应 xterm 支持的打印机控制序列。
在命令行中,你可以使用
tput mc0
打印屏幕内容,或者
tput mc5
这会打开打印机。后者会更烦人,所以你的二进制文件可能具有与以下内容相对应的字符串mc0
:
Escape[
i
(的序列mc5
有一个5
之前i
)。
以供参考:
CSI Pm i 媒体复制 (MC)。 Ps = 0 -> 打印屏幕(默认)。 Ps = 4 -> 关闭打印机控制器模式。 Ps = 5 -> 打开打印机控制器模式。
-
记录姓名
mc0
,mc5
以及其他一些信息。