|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 12 Jun 2002 20:01:45 To : "Dmitriy Bagriy" Subject : Re: fbi & mc -------------------------------------------------------------------------------- Dmitriy Bagriy <dmb@hire8.com.ua> wrote: DB> XeLLo, All! DB> Есть такой image viewer - fbi, который выводит изображение DB> через framebuffer. В чистом bash'е, когда consoletype==vt, DB> он работает нормально. А при запуске из mc говорит, что не DB> может работать с псевдотерминалом. В этом случае DB> consoletype==pty. Почему при запуске mc меняется тип DB> консоли, можно ли этому противодействовать? Какие будут DB> советы по этому поводу? Итак, грамотно поставленный вопрос заслуживает развернутого ответа. Что такое pseudoterminal - это один из основных концептов Unix - когда программа (текстовая) взаимодействует не с реальным терминалом, а с некоторой другой программой, которая либо обрабатывает данные сама, либо передает их куда-то дальше. Hа псевдотерминалах базируются такие протоколы как telnet, ssh, rlogin, которые позволяют выполнять команды на удаленной машине, эмуляторы терминала в xwindow - xterm, rxvt, gnome-terminal etc, разнообразные средства автоматизации, такие как expect. В общем, в современном unix ситуация когда интерактивная программа выполняется на реальном железном (или ядерном) терминале это исключение, а псеводтерминал - правило. Псевдотерминал отличается от обычного перенаправленного ввода-вывода тем, что вывод на него буферизуется по-другому и поддерживается ряд дополнительных средств управления вводом-выводом, такие как выключение эха (при вводе паролей) или ввод по одному символу (благодаря чему работают полноэкранные интерфейсы). Hо особенности, специфичные для конкретных типов терминалов (загрузка шрифтов, фреймбуферная графика) не поддерживаются. Поэтому fbi и не работает. Зачем конкретно mc запускает программы в псевдотерминале мне лично не совсем понятно - скрытие окон по Ctrl-O там все равно реализовано по другому (и криво), ввод пользователя перед передачей программе и вывод программы перед показом пользователю он никак не обрабатывает (макросы через % не в счет - их можно и проще реализовать). По-моему это у него отрывается. Искать в документации по ключевому слову subshell. Hо правильнее а) отказаться от использования mc - использование псевдотерминалов не по делу - не единственный его глюк. б) не использовать программ, которые не работают корректно в псевдотерминале. Потому что как только у тебя появится более одной машины, без сетевой прозрачности тебе станет грустно. Перебирайся-ка ты лучше в X-ы. Там и графика работает независимо от того, какое расстояние между процессором, на котором выполнеяется программа, и дисплеем на котором ее окошки отображаются. DB> -- я пришел к тебе с дискетой - рассказать, что сеть упала. DB> с приветом из fidolook, Dimich. ICQ# 103748121 -- -- Это не скрипт, это перловая каша! --- ifmail v.2.15dev5 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/151787235504c.html, оценка из 5, голосов 10
|