Linux API. Исчерпывающее руководство | страница 3



Стандартным справочным руководством по языку C является книга [Kernighan & Ritchie, 1988]. В книге [Harbison & Steele, 2002] этот язык рассмотрен более подробно, а также приведены изменения, появившиеся в стандарте C99. Издание [van der Linden, 1994] дает альтернативное рассмотрение языка С, очень увлекательное и толковое. В книге [Peek et al., 2001] содержится хорошее краткое введение в работу с системой UNIX.


Linux и UNIX

Эта книга могла бы быть полностью посвящена системному программированию в стандарте UNIX (то есть POSIX), поскольку многие функции, которые можно найти в других реализациях UNIX, присутствуют также в Linux и наоборот. Тем не менее, поскольку создание портируемых приложений — одна из основных задач, важно также описать и особенности Linux, которые расширяют стандартный программный интерфейс UNIX. Одной из причин является популярность Linux. Другая причина состоит в том, что иногда необходимо применять нестандартные расширения: либо из соображений производительности, либо для достижения функциональности, недоступной в стандартном программном интерфейсе UNIX. (По этим причинам все реализации UNIX снабжены нестандартными расширениями.)

Таким образом, хотя я задумал эту книгу так, чтобы она была полезна для программистов, работающих со всеми реализациями UNIX, я также привожу полное описание программных средств, характерных для Linux. К ним относятся следующие:

• интерфейс epoll, который позволяет получать уведомления о событиях файлового ввода-вывода;

• интерфейс inotify, позволяющий отслеживать изменения файлов и каталогов;

• мандаты (возможности) (capabilities) — позволяют предоставить какому-либо процессу часть прав суперпользователя;

• расширенные атрибуты;

• флаги индексного дескриптора;

• системный вызов clone();

• файловая система /proc;

• характерные для Linux особенности реализации файлового ввода-вывода, сигналов, таймеров, потоков, совместно используемых (общих) библиотек, межпроцессного взаимодействия и сокетов.


Структура книги

Вы можете использовать эту книгу по меньшей мере двумя способами.

• В качестве вводного руководства в программный интерфейс Linux/UNIX. Можно читать книгу от начала до конца. Главы из второй половины издания основаны на материале, изложенном в главах первой половины; ссылки на более поздний материал по возможности сведены к минимуму.

• В качестве всеобъемлющего справочника по программному интерфейсу Linux/UNIX. Расширенное оглавление и обилие перекрестных ссылок позволяют читать книгу в произвольном порядке.