Эрик Реймонд - Искусство программирования для Unix
- Название:Искусство программирования для Unix
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:неизвестен
- Город:Москва
- ISBN:5-8459-0791-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эрик Реймонд - Искусство программирования для Unix краткое содержание
Книги, подобные этой, редко появляются на прилавках магазинов, поскольку за ними стоит многолетний опыт работы их авторов. Здесь описывается хороший стиль Unix- программирования, многообразие доступных языков программирования, их преимущества и недостатки, различные IPC-методики и инструменты разработки. Автор анализирует философию Unix, культуру и основные традиции сформированного вокруг нее сообщества. В книге объясняются наилучшие практические приемы проектирования и разработки программ в Unix. Вместе с тем описанные в книге модели и принципы будут во многом полезны и Windows-разработчикам. Особо рассматриваются стили пользовательских интерфейсов Unix-программ и инструменты для их разработки. Отдельная глава посвящена описанию принципов и инструментов для создания хорошей документации.
Книга будет полезной для широкой категории пользователей ПК и программистов.
Искусство программирования для Unix - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Редактирование (edit). Программа, способная открыть ресурс либо в режиме только для чтения, либо в режиме редактирования, может принимать ключ -е
для активизации режима редактирования. Примеры: crontab(1) и утилита get(1) системы контроля версий SCCS.
Иногда ключ -е
имеет значение "exclude" (исключить) или "expression" (выражение).
-f
Файл (с аргументом). Очень часто используется с аргументом для указания файла входных (или реже выходных) данных для программ, которым требуется произвольный доступ к входным или выходным данным (там, где недостаточно перенаправления посредством символов < или >). Классическим примером является утилита tar(1) ; существует также множество других примеров. Кроме того, данный ключ часто используется для указания того, что аргумент, обычно принимаемый из командной строки, необходимо взять из файла. Классические примеры: awk(1) и egrep(1) . Сравните с ключом -о
ниже. Часто -f
представляет собой входной аналог -о
.
Форсировать (force) (обычно без аргумента). Форсирует некоторые операции (такие как блокировка или разблокировка файлов), которые обычно осуществляются по условию. Данное значение менее распространено.
Демоны часто используют ключ -f
, комбинируя оба значения, для того чтобы форсировать обработку конфигурационного файла, расположенного в нестандартном месте. Примеры: ssh(1), httpd(1) и многие другие демоны.
-h
Заголовки (headers) (обычно без аргумента). Включает, подавляет или модифицирует заголовки табличных отчетов, сгенерированных программой. Примеры: pr(1), ps(1) .
Помощь (help). В настоящее время данное значение распространено меньше, чем можно ожидать. В большинстве случаев разработчики ранней Unix считали справку лишней тратой памяти, которую они не могли себе позволить. Вместо этого они создавали страницы руководства (что определенным способом сформировало соответствующий стиль справочных руководств в Unix, см. главу 18).
-i
Инициализировать (initialize) (обычно без аргумента). Устанавливает некоторый критический ресурс или базу данных, связанную с программой, в первоначальное или пустое состояние. Пример: ci(1) в RCS.
Диалоговый (интерактивный (interactive)) режим (обычно без аргумента). Заставляет программу (которая обычно этого не делает) запрашивать подтверждение выполняемых операций. Существуют классические примеры ( rm(1), mv(1) ), однако данное значение не является общепринятым.
Включить (include) (с аргументом). Добавляет имя файла или каталога в список просматриваемых приложением ресурсов. Все Unix-компиляторы с любым эквивалентом включения файла исходного кода в своих языках используют ключ -I
именно в этом смысле. Было бы крайне неожиданно увидеть иное использование данного параметра.
-k
Хранить (keep) (с аргументом). Подавляет обычное удаление какого-либо файла, сообщения или ресурса. Примеры: passwd(1), bzip(1) и fetchmail(1) .
Иногда ключ -k
имеет значение "kill" (уничтожить, завершить).
-l
Вывести список (list) (без аргумента). Если разрабатываемая программа является архиватором или интерпретатором/программой просмотра для какого- либо каталога или архива, то было бы очень неожиданно использовать ключ -l
для действий, отличных от запроса списка объектов. Примеры: arc(1), binhex(1), unzip(1) . (Утилиты tar(1) и cpio(1) являются исключениями.)
В программах, которые уже являются генераторами отчетов, ключ -l
почти без исключений означает "long" (длинный) и отображает список в длинном формате, где открываются более подробные сведения по сравнению со стандартным режимом. Примеры: ls(1), ps(1) .
Загрузить (load) (с аргументом). Если программа является компоновщиком или интерпретатором языка, то ключ -l
неизменно загружает библиотеку в некотором соответствующем состоянии. Примеры: gcc(1), f77(1), emacs(1) .
Регистрация в системе (login). В таких программах, как rlogin(1) и ssh(1) , в которых необходимо указать сеть, это можно сделать с помощью ключа -l
.
Иногда -l
имеет значение "length" (длина, длительность) или "lock" (блокировка).
-m
Сообщение (message) (с аргументом). Ключ -m
передает свой аргумент в программу как строку сообщения для протоколирования или извещения. Примеры: ci(1), cvs(1) .
Иногда ключ -m
имеет значение "mail" (почта), "mode" (режим) или "modification-time" (время изменения).
-n
Число (number) (с аргументом). Используется, например, для указания диапазонов номеров страниц в таких программах, как head(1), tail(1), nroff(1) и troff(1) . Некоторые сетевые инструменты, обычно отображающие DNS-имена, принимают ключ -n
как параметр, который вызывает отображение IP-адресов вместо имен. Основные примеры: ifconfig(1) и tcpdump(1) .
Нет (not) (без аргумента). Используется для подавления обычных действий в таких программах, как make(1) .
-о
Вывод (output) (с аргументами). Используется для того, чтобы указать программе в командной строке выходной файл или устройство по имени. Примеры: as(1), cc(1), sort(1) . Во всех программах с интерфейсами, подобными интерфейсу компилятора, было бы крайне неожиданно увидеть иное использование данного параметра. Программы, поддерживающие ключ -o
часто (как gcc) имеют логику, которая позволяет опознавать его как после обычных аргументов, так и перед ними.
-p
Порт (port) (с аргументом). Главным образом применяется для параметров, которые определяют номера TCP/IP-портов. Примеры: cvs(1) , инструменты PostgreSQL, smbclient(1), snmpd(1), ssh(1) .
Протокол (protocol) (с аргументом). Примеры: fetchmail(1), snmpnetstat(1) .
-q
Подавление вывода (quiet) (обычно без аргумента). Подавляет обычное отображение результата или сведений диагностики. Данное значение является весьма распространенным. Примеры: ci(1), со(1), make(1) . См. также значение "подавление вывода" ключа -s
.
-r
(а также -R
)
Рекурсия (recurse) (без аргумента). Если программа выполняет операции над каталогом, данный параметр может указывать на то, что операции рекурсивно повторяются для всех входящих в данный каталог подкаталогов. Любое другое применение данного ключа в утилите, обрабатывающей каталоги, было бы весьма неожиданным. Классическим примером, несомненно, является утилита cp(1) .
Реверс (reverse) (без аргумента). Примеры: ls(1), sort(1) . Данный параметр может использоваться в фильтре для реверсирования своего обычного действия преобразования (сравните с ключом -d
).
-s
Подавление вывода (silent) (без аргументов). Подавляет обычное отображение сведений диагностики или результатов (аналогичен ключу -q
; когда поддерживаются оба ключа, то q
означает "quiet" (тихо), a -s
— "utterly silent" (очень тихо)). Примеры: csplit(1), ex(1), fetchmail(1) .
Интервал:
Закладка: