В дистрибутивы Linux входят man-страницы с описанием большинства стандартных команд, системных вызовов и стандартных библиотечных функций. Интерактивная документация разбита на разделы, которым присвоены номера. Для программистов наиболее важными являются следующие разделы:

(1) пользовательские команды;

(2) системные вызовы:

(3) стандартные библиотечные функции:

(8) системные/административные команды.

Числа обозначают номера разделов. Для доступа к страницам интерактивной документации применяется команда man. Она имеет вид man имя, где имя — название команды или функции. Иногда одно и то же имя встречается в разных разделах. В этом случае номер раздела нужно указать явно, поставив его перед именем. К примеру, так вызывается страница с описанием команды sleep (находящаяся в первом разделе):

% man sleep

А следующая команда вызывает страницу с описанием библиотечной функции sleep():

% man 3 sleep

Каждая man-страница содержит однострочное резюме команды или функции. Команда whatis имя отображает список всех man-страниц (во всех разделах), связанных с указанным именем. Если не известно точно, описание какой команды или функции требуется, можно выполнить поиск по ключевому слову в строках резюме с помощью команды man -k ключевое_слово.

Страницы интерактивной документации содержат множество полезной информации и являются первым источником, к которому следует обращаться за помощью. В случае команды man-страница описывает ее флаги и аргументы, входные и выходные значения, коды ошибок установки по умолчанию и т.п. В случае системного вызова или библиотечной функции описываются параметры и возвращаемые значения, коды ошибок и побочные эффекты, а также указывается, какие файлы заголовков нужно включать в программу при использовании функции.

<p>1.5.2. Система Info</p>

Система Info содержит гораздо более подробную документацию ко многим базовым компонентам GNU/Linux, а также к ряду других программ. Информационные страницы представляют собой гипертекстовые документы, напоминающие Web-страницы. Для запуска текстовой версии справочной системы Info достаточно ввести info в командной строке. Появится меню с описанием иерархии документов, установленных в системе. Нажав , можно получить список клавиш, посредством которых осуществляется навигация по документам системы Info.

Среди наиболее полезных документов перечислим следующие:

■ gcc — описание компилятора gcc;

■ libc — описание GNU-библиотеки языка С, содержащей множество системных вызовов,

■ gdb — описание GNU-отладчика;

■ emacs — описание редактора Emacs;

■ info — описание самой системы Info.

Можно сразу вызвать нужную страницу, задав ее имя в командной строке:

% info libs

Те, кто в основном работают в Emacs, могут вызвать встроенный модуль просмотра документов Info, набрав M-x info или C-h i.

<p>1.5.3. Файлы заголовков</p>

Много информации о системных функциях можно почерпнуть из системных файлов заголовков. Они находятся в каталогах /usr/include и /usr/include/sys. Например, если компилятор сообщает об ошибке вызова системной функции, загляните в соответствующий файл заголовков и убедитесь, что реальный прототип функции соответствует описанному на man-страннце.

В Linux множество деталей функционирования системных вызовов отражено в файлах заголовков расположенных в каталогах /usr/include/bits, /usr/include/asm и /usr/include/linux. В частности, номера сигналов (механизм сигналов рассматривается в разделе 3.3, "Сигналы") определены в файле /usr/include/bits/signum.h.

<p>1.5.4. Исходные тексты</p>

Linux — система с открытым кодом, не так ли? Верховным судьей, определяющим, как работает система, является исходный код самой системы. К нашему счастью, он доступен бесплатно. В имеющийся дистрибутив Linux могут входить исходные тексты всей системы и всех установленных в ней программ. (Правда, они не всегда записываются на жесткий диск. Инструкции по инсталляции исходных текстов содержатся в документации дистрибутива.) Если это не так, у вас есть право запросить их на основании общей открытой GNU-лицензии.

Исходный код ядра Linux обычно хранится в каталоге /usr/src/linux. Это хороший источник информации о том, как работают процессы, виртуальная память и системные устройства. Большинство системных функций, упоминаемых в книге, реализовано в GNU- библиотеке языка С. Местоположение ее исходных текстов можно узнать в документации к дистрибутиву.

<p>Глава 2</p><p>Написание качественных программ для среды GNU/Linux</p>
Перейти на страницу:

Похожие книги