【问题标题】:OS X: $ cat /dev/random asks me to printOS X:$ cat /dev/random 让我打印
【发布时间】:2013-12-10 23:39:51
【问题描述】:

当我跑步时:

$ cat /dev/random

在 OS X 10.9 上,一段时间后,会弹出一个打印对话框,询问我是否要打印乱码 (iTerm2)。

使用本机终端应用程序,它只是崩溃。

我知道 /dev/random 会产生噪音,但为什么这个打印对话框会随机出现,为什么原生终端应用程序会崩溃?

【问题讨论】:

  • 我认为有一个终端控制序列可以让打印机打印东西,但每次 cat /dev/random 并且总是在“短时间”之后产生它似乎不太可能。
  • 确实如此。我尝试了cat /dev/random,经过大约 10 秒的胡言乱语,Terminal.app 死了,我不得不重新启动它。
  • 有趣的是,控制序列将被解释而不是仅仅显示。我认为这是用于其他事情,例如警报,尽管您会想象它会检查它是什么,如果它不是控制信号,则将其打印到终端。因此,这意味着您可以通过终端应用程序使操作系统打印?很酷。
  • @user1371383:光标定位等控制序列的工作方式与在屏幕上绘制的程序(如编辑器)的工作方式完全相同。您可以在此处找到有关该主题的更多信息:en.wikipedia.org/wiki/Terminal_capabilities

标签: macos unix random terminal iterm2


【解决方案1】:

您无意中误会了模糊测试 (http://en.wikipedia.org/wiki/Fuzz_testing) 的概念,在该概念中,软件使用随机输入进行测试,以使其崩溃或出现意外行为。

发挥作用的机制是终端应用程序解释它发送的每个字符,以查看它是否应该执行一些特殊功能,例如加粗文本、敲响“铃铛”甚至打印屏幕。

向软件制造商报告您发现的任何错误(尽管对通过模糊测试发现的错误的常见反应是“不要那样做”)。

【讨论】:

  • 但是如果有一个用于打印屏幕的控制序列,那么 iTerm2 就会正常运行。唯一的错误是崩溃的程序,这是由 Apple 制造的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2016-01-30
  • 1970-01-01
相关资源
最近更新 更多