Запуск "кошка" на файл открывает диалоговое окно печати?

274
Ben

Сегодня по какой-то причине я выполнил команду 'cat' в файле образа виртуального диска VirtualBox (VDI). Как и ожидалось, на консоль выводился различный тарабарщина. Однако примерно через 15 секунд после запуска команды открылся диалог печати! Он отобразил страницу с большим количеством машинного кода, готового к печати. Когда я закрыл диалоговое окно, файл продолжал печататься как обычно.

Я действительно озадачен этим. Я использую macOS Sierra 10.12.6. У кого-нибудь есть идеи, как такое поведение может произойти?

2
Если вы `cat` бинарный файл, вы не знаете, какие конечные последовательности вы будете запускать. Вы должны проверить конфигурацию своего терминала, чтобы увидеть, вызывают ли какие-либо escape-последовательности печать. AFH 6 лет назад 0

1 ответ на вопрос

2
Thomas Dickey

MacOS Terminal.app, похоже, этого не делает, но iTerm2 отвечает на последовательности управления принтером, поддерживаемые xterm.

Из командной строки вы можете сделать это, используя

tput mc0 

который печатает содержимое экрана, или

tput mc5 

который включает принтер. Последнее будет более раздражающим, поэтому ваш двоичный файл, вероятно, имеет строку, соответствующую mc0:

Escape[i

(последовательность для mc5имеет 5перед i).

Для справки:

 CSI Pm i Media Copy (MC). Ps = 0 -> Печать экрана (по умолчанию). Ps = 4 -> Отключить режим контроллера принтера. Ps = 5 -> Включить режим контроллера принтера. 
Вау, это действительно круто. Спасибо Ben 6 лет назад 0