Читаем Linux API. Исчерпывающее руководство полностью

Linux API. Исчерпывающее руководство

Linux Programming Interface — исчерпывающее руководство по программированию приложений для Linux и UNIX. Описанный здесь интерфейс применяется практически с любыми приложениями, работающими в операционных системах Linux или UNIX. В этой авторитетной книге эксперт по Linux Майкл Керриск подробно описывает библиотечные вызовы и библиотечные функции, которые понадобятся вам при системном программировании. Вся теория сопровождается объяснениями на примерах четких и понятных полнофункциональных программ.

Майкл Керриск

Программирование, программы, базы данных18+
<p><emphasis>Майкл Керриск</emphasis></p><p>Linux API. Исчерпывающее руководство</p><p>От автора</p>

Приветствую вас, читателей русскоязычного издания моей книги The Linux Programming Interface.

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

Англоязычное издание этой книги вышло в конце 2010 года. С того времени было выпущено несколько обновлений ядра Linux (их было примерно по пять за год). Несмотря на это, содержимое оригинала книги, а следовательно, и данного перевода, не утратило актуальности и сохранит ее еще на долгие годы. Тому есть две причины.

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

Во-вторых, изменения вносятся в виде дополнений к интерфейсам, рассматриваемым в книге, а не модификаций уже существующих функциональных свойств, описанных в ней же. (Хочу еще раз отметить, что это вполне естественный ход разработки ядра Linux: специалисты прилагают большие усилия к тому, чтобы ничего не нарушить в уже существующем API пользовательского пространства.) Со дня выхода оригинала книги в данный API были внесены изменения. Их перечень (на английском) дотошные читатели могут увидеть на моем сайте по адресу http://man7.org/tlpi/api_changes/.

В заключение хочу отметить: я очень горжусь тем, что моя книга будет переведена на другой язык. Перевод на русский стал для меня особенно приятным сюрпризом, поскольку в детстве я пытался выучить этот язык по книгам. (К сожалению, отсутствие педагога или русскоговорящего окружения не позволили мне существенно преуспеть в этом начинании.) Перевод текста объемом 1250 страниц — задача не из легких, и я благодарен издателю и команде переводчиков. Надеюсь, что результаты нашей усердной работы и усилий множества других людей, помогавших выпустить в свет оригинал, окажутся весьма полезными для sвас, читателей этого русскоязычного издания.

Майкл Керриск (Michael Kerrisk)

<p>Предисловие</p>

Цель книги

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

• файловый ввод/вывод;

• создание и удаление файлов и каталогов;

• создание новых процессов;

• запуск программ;

• установку таймеров;

• взаимодействие между процессами и потоками на одном компьютере;

• взаимодействие между процессами, запущенными на разных компьютерах, объединенных посредством сети.

Такой набор низкоуровневых интерфейсов иногда называют интерфейсом системного программирования.

Несмотря на то что основное внимание уделяется операционной системе Linux, подробно рассмотрены также стандарты и вопросы, связанные с портируемостью. Я четко разграничиваю темы, специфичные для Linux, и функциональные возможности, типичные для большинства реализаций UNIX и описанные в стандарте POSIX, а также в спецификации Single UNIX Specification. Таким образом, эта книга предлагает всеобъемлющее рассмотрение программного интерфейса UNIX/POSIX и ее могут использовать программисты, которые создают приложения, предназначенные для других UNIX-систем, или портируемые программы.

Для кого эта книга

Книга предназначена главным образом для такой аудитории, как:

• программисты и разработчики программного обеспечения, создающие приложения для Linux, других UNIX-систем или иных систем, совместимых со стандартом POSIX;

• программисты, выполняющие портирование приложений из Linux в другие реализации UNIX или из Linux в другие операционные системы (ОС);

• преподаватели и заинтересованные студенты, которые преподают или изучают программирование для Linux или для других UNIX-систем;

• системные администраторы и «продвинутые» пользователи, которые желают тщательнее изучить программный интерфейс Linux/UNIX и понять, каким образом реализованы различные части системного ПО.

Перейти на страницу:

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных