7.2.1.1. Учебный пример: пользовательский почтовый агент mutt
7.2.1.1. Учебный пример: пользовательский почтовый агент mutt
Пользовательский почтовый агент mutt является современным представителем наиболее важной традиции проектирования программ для обработки электронной почты в Unix. Данная программа имеет простой экранный интерфейс с одноклавишными командами для просмотра и чтения почты.
Если mutt используется для создания почтовых сообщений (либо если данная программа вызвана с адресом в качестве аргумента командной строки или с помощью одной из команд для создания ответного сообщения), то программа определяет значение переменной EDITOR, а затем генерирует имя временного файла. Значение данной переменной используется как команда, а имя временного файла как ее аргумент'. Когда запущенная таким образом программа прекращает свою работу, mutt возобновляет управление, предполагая, что временный файл содержит необходимый текст сообщения.
Данное соглашение в Unix соблюдается почти во всех программах создания почтовых сообщений и сообщений в группах новостей. И вследствие этого программистам, реализующим такие программы, не требуется писать сотни неизбежно различающихся редакторов, а пользователям не требуется изучать сотни различных интерфейсов. Вместо этого пользователи могут использовать с такими программами предпочтительные редакторы.
Важным вариантом такой стратегии является вызов с созданием подоболочки небольшой программы-посредника, передающей специальное задание уже запущенному экземпляру большой программы, такой как редактор или Web-браузер. Поэтому разработчики, на Х-диснлеях которых обычно уже имеется запущенный экземпляр редактора emacs, могут установить переменную EDITOR*emacsclient и в случае необходимости редактировать сообщение в mutt открывать данные буфера в emacs. Целью данного подхода является не экономия памяти или других ресурсов, а предоставление пользователю возможности объединять все редактирование в одном emacs-процессе (поэтому, например, при вырезании и вставке между буферами можно было переносить внутренние параметры emacs, такие как выделение шрифта).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
6.1.3. Учебный пример: GCC
6.1.3. Учебный пример: GCC Программа GCC, GNU С-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,
6.1.5. Учебный пример: SNG
6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа
7.2.2.3. Учебный пример: pic2graph
7.2.2.3. Учебный пример: pic2graph Исходный shell-код для программы pic2graph(1) поставляется вместе с пакетом инструментальных средств для форматирования текстов groff, созданным Фондом свободного программного обеспечения. Данная программа преобразовывает диаграммы, написанные на
7.2.2.4. Учебный пример: утилиты bc(1) и dc(1)
7.2.2.4. Учебный пример: утилиты bc(1) и dc(1) Частью классического инструментального набора, происходящего из Unix Version 7, является пара программ-калькуляторов. Программа dc( 1) представляет собой простой калькулятор, принимающий на стандартный ввод текстовые строки, состоящие из
7.2.5.1. Учебный пример: scp и ssh
7.2.5.1. Учебный пример: scp и ssh Индикаторы выполнения — один распространенный случай, в котором связанный протокол действительно является тривиальным. Утилита scp(1) (secure-copy command — команда безопасного копирования) вызывает программу ssh(1) как подчиненный процесс, перехватывая
8.2.1. Учебный пример: sng
8.2.1. Учебный пример: sng В главе 6 рассматривалась утилита sng(1), преобразовывающая PNG-файл в редактируемую полностью текстовую форму. Формат файлов данных SNG заслуживает повторного рассмотрения здесь для контраста, поскольку он не вполне является узкоспециальным
8.2.8. Учебный пример: awk
8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и т4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.
14.4.5.1. Учебный пример: TkMan
14.4.5.1. Учебный пример: TkMan TkMan — браузер для man-страниц Unix и документов Texinfo. Исходный код состоит примерно из 1200 строк, что довольно много для программы, написанной на чистом Tel, но код необычайно хорошо организован и разделен на модули. Для создания GUI-интерфейса, несколько
6.1.3. Учебный пример: GCC
6.1.3. Учебный пример: GCC Программа GCC, GNU C-компилятор, применяемый в большинстве современных Unix-систем, возможно, наилучшим образом демонстрирует преимущества проектирования с учетом прозрачности. Программа GCC организована как последовательность стадий обработки,
6.1.5. Учебный пример: SNG
6.1.5. Учебный пример: SNG Программа sng осуществляет преобразование формата PNG в его полнотекстовое представление (формат SNG или Scriptable Network Graphics) и обратно. Формат SNG можно просматривать и модифицировать с помощью обычного текстового редактора. Работающая с PNG-файлом программа
7.2.1.1. Учебный пример: пользовательский почтовый агент mutt
7.2.1.1. Учебный пример: пользовательский почтовый агент mutt Пользовательский почтовый агент mutt является современным представителем наиболее важной традиции проектирования программ для обработки электронной почты в Unix. Данная программа имеет простой экранный интерфейс с
7.2.5.1. Учебный пример: scp и ssh
7.2.5.1. Учебный пример: scp и ssh Индикаторы выполнения — один распространенный случай, в котором связанный протокол действительно является тривиальным. Утилита scp(1) (secure-copy command — команда безопасного копирования) вызывает программу ssh(1) как подчиненный процесс, перехватывая
8.2.1. Учебный пример: sng
8.2.1. Учебный пример: sng В главе 6 рассматривалась утилита sng(1), преобразовывающая PNG-файл в редактируемую полностью текстовую форму. Формат файлов данных SNG заслуживает повторного рассмотрения здесь для контраста, поскольку он не вполне является узкоспециальным
8.2.8. Учебный пример: awk
8.2.8. Учебный пример: awk Мини-язык awk является инструментальным средством Unix старой школы, прежде широко используемым в shell-сценариях. Как и m4, утилита awk предназначена для написания небольших, но выразительных программ для преобразования текстового ввода в текстовый вывод.
Реймонд Эрик Стивен
Просмотр ограничен
Смотрите доступные для ознакомления главы 👉