Брайан Керниган - UNIX — универсальная среда программирования Страница 81
- Категория: Компьютеры и Интернет / Программное обеспечение
- Автор: Брайан Керниган
- Год выпуска: -
- ISBN: -
- Издательство: -
- Страниц: 103
- Добавлено: 2019-06-19 14:37:03
Брайан Керниган - UNIX — универсальная среда программирования краткое содержание
Прочтите описание перед тем, как прочитать онлайн книгу «Брайан Керниган - UNIX — универсальная среда программирования» бесплатно полную версию:В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.
Брайан Керниган - UNIX — универсальная среда программирования читать онлайн бесплатно
Справочники печатаются с помощью команды man(1), т.е. файла shell, который запускает nroff -man, поэтому man hoc печатает справочник hoc. Если одно и то же имя появляется в нескольких разделах, как само man (раздел 1 описывает команду, тогда как раздел 7 описывает макрокоманды), то раздел можно определить для man как
$ man 7 man
В результате печатается только описание макрокоманд пакета man. По умолчанию принято печатать все справочники с определенным именем, использующим nroff, но man -t порождает справочники для наборного устройства с помощью troff.
Автор справочника создает файл в соответствующем подкаталоге /usr/man. Чтобы печатать справочник, команда man вызывает nroff или troff с пакетом макроопределений; это можно увидеть, отыскав команду man для вызовов форматирующей программы. Мы получили бы такой результат:
$ grep roff `which man`
nroff $opt -man $all ;;
neqn $all | nroff $opt -man ;;
troff $opt -man $all ;;
troff -t $opt -man $all | tc ;;
eqn $all troff $opt -man ;;
eqn $all troff -t $opt -man | tc ;;
$
Разнообразие достигается применением флагов: nroff или troff, запускается или нет eqn и т.д. Справочник по макрокомандам, вызываемый troff -man, определяет команды troff, форматирующие в стиле данного руководства. В принципе они аналогичны макрокомандам ms, но есть и различия, особенно в установке названия и командах смены шрифта. Макрокоманды кратко документированы в man(7), но основные из них легко запоминаются. Разметка справочника такова:
.TH COMMAND номер раздела
.SH NAME
команда \- краткое описание функций
.В команда возможные аргументы
.SH DESCRIPTION
Подробное объяснение команд и флагов.
Абзацы вводятся .PP.
.PP
Это новый абзац.
.SH FILES
Файлы, используемые командой, например, passwd(1)
упоминает /etc/passwd
.SH "SEE ALSO."
Ссылки к связанным документам, включая другие справочники
.SH DIAGNOSTICS
Описание некоторого необычного выходного потока
(например, см. cmp(1))
.SH BUGS
Неожиданные черты (не всегда ошибки; см. ниже)
Если какой-то раздел пуст, его заголовок опускается. Строка. .TH и разделы NAME, SYNOPSIS, DESCRIPTION не обязательны. Строка
.TH COMMAND номер раздела
называет команду и определяет номер раздела. Различные строки .SH идентифицируют разделы справочника. Разделы NAME и SYNOPSIS являются специальными; остальные содержат обычный текст. Раздел NAME называет команду (на этот раз строчными буквами) и дает ее описание в одной строке, а раздел SYNOPSIS называет флаги, но не описывает их. Как и в любом разделе, входной текст имеет произвольную форму, поэтому смену шрифта можно определять с помощью макрокоманд .B, .I, .R. В разделе SYNOPSIS и имя, и флаги выделены жирным шрифтом; прочая информация печатается обычным шрифтом. Разделы ed(1) NAME и SYNOPSIS, например, имеют вид и выводятся как
.SH NAME
ed \- text editor
.SH SYNOPSIS
.В ed
[
.B \-
][
.B \-x
][ name ]
NAME
ed - text editor
SYNOPSIS
ed [ - ][ -x ][ name ]
Заметьте, что используется \-, а не просто -.
Раздел DESCRIPTION описывает команду и ее флаги. В большинстве случаев это описание команды, а не языка, определяемого командой. Справочник сс(1) не определяет язык Си: он указывает, как запустить команду ее, чтобы компилировать программы на Си, как вызвать оптимизатор, где оставлен результат и т.п. Язык описывается в руководстве для пользователя по Си, на которое есть ссылки в разделе сс(1) SEE ALSO. С другой стороны, разделение не абсолютно: man(7) есть описание языка макрокоманд руководства.
По соглашению имена команд и метки флагов (такие, как "name" в справочнике ed) печатаются курсивом с помощью макрокоманды .I (первый аргумент печатается курсивом, второй обычным шрифтом). Макрокоманда .IR используется здесь потому, что макрокоманда .I в пакете не обеспечивает недокументированного, но удобного применения второго флага в ms.
Раздел FILES упоминает любые файлы, неявно используемые командой. DIAGNOSTICS следует включать только в том случае, если команда вырабатывает необычный выходной поток. Это могут быть диагностические сообщения, сведения о состоянии выхода или информация о неожиданных отклонениях от стандартного выполнения команды. Раздел BUGS тоже назван отчасти неверно. Дефекты, о которых здесь сообщается, представляют собой не столько ошибки, сколько недостатки - просто ошибки должны быть исправлены прежде, чем команда будет введена в систему. Чтобы понять, для чего нужны разделы DIAGNOSTICS и BUGS, вам следует пролистать стандартное руководство.
Поясним на примере, как писать справочник. Источник для hoc(1), /usr/man/man1/hoc.1, показан на рис. 9.1, а на рис. 9.2 представлен выходной текст после вызова.
$ man -t hoc
.TH HOC 1
.SH NAME
hoc \- диалоговый язык для арифметики с плавающей точкой
.SH SYNOPSYS
.В hoc
[ файл ... ]
.SH DESCRIPTION
.I Hoc
интерпретирует простой язык для арифметики с плавающей
точкой, примерно уровня Бейсика, с синтаксисом, подобным
Си, и с процедурами и функциями с аргументами, а также
с рекурсией.
.PP
Поименованные
.IR файлы
читаются и интерпретируются по порядку. Если
.I файл
не указан или если
.I файл это '\-'
.I hoc
интерпретирует стандартный входной поток.
.PP
Входной поток
.I Hoc состоит из
.I выражений и
.IR операторов.
Выражения вычисляются и их результаты печатаются.
Операторы,обычно присваивания и определения функций
или процедур, не вырабатывают выходного результата,
если они явно не вызывают
.IR print.
.SH "SEE ALSO"
.I
Hoc \- Диалоговый язык для арифметики с плавающей точкой
Брайана Кернигана и
Роба Пайка.
.br
.IR bas(1),
.IR bc(1)
and
.IR dc(1).
.SH BUGS
Восстановление после ошибок в определениях функции
и процедур несовершенно.
.br
Обработка концов строк не совсем удобна для пользователя.
Рис. 9.1. /usr/man/man1/hoc.1
HOC(1) HOC(1) NAMEhoc – диалоговый язык для арифметики с плавающей точкой
SYNOPSYShoc [ файл … ]
DESCRIPTIONHoc интерпретирует простой язык для арифметики с плавающей точкой, примерно уровня Бейсика, с синтаксисом, подобным Си, и с процедурами и функциями с аргументами, а также с рекурсией.
Поименованные файлы читаются и интерпретируются по порядку. Если файл не указан или если файл — это '-' hoc интерпретирует стандартный входной поток.
Входной поток Hoc состоит из выражений и операторов. Выражения вычисляются и их результаты печатаются. Операторы, обычно присваивания и определения функций, или процедур, не вырабатывают выходного результата, если они явно не вызывают print.
"SEE ALSO"Hoc – Диалоговый язык для арифметики с плавающей точкой Брайана Кернигана и Роба Пайка.
bas(1), bc(1) and dc(1).
BUGSВосстановление после ошибок в определениях функции и процедур несовершенно. Обработка концов строк не совсем удобна для пользователя.
8-я версия 1
Рис. 9.2. hoc(1)
Упражнение 9.8.Напишите справочник для doctype. Напишите версию команды man, которая отыскивает документацию по вашим личным программам в вашем собственном каталоге man.
9.5 Дополнительные средства для подготовки документации
Для подготовки документации существует несколько дополнительных программ. Команда refer(1) отыскивает ссылки на ключевые слова, вставляет эти ссылки в строки вашего документа и помещает раздел ссылок в его конце. Определив соответствующую макрокоманду, вы можете добиться, чтобы refer печатала ссылки в том виде, в каком они вам нужны. Имеются определения для многих журналов по вычислительным наукам. Команда refer является частью седьмой версии, но не включена в некоторые другие версии.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.