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



Я протестировал работу большинства программ, приведенных в этой книге (за исключением тех, что используют функции, отмеченные как специфичные для Linux), в некоторых или во всех этих системах: Solaris, FreeBSD, Mac OS X, Tru64 UNIX и HP-UX. Для улучшения портируемости программ в некоторые из этих систем на сайте http://www.man7.org/tlpi приводятся альтернативные версии большинства примеров с дополнительным кодом, которого нет в этой книге.


Ядро Linux и версии библиотеки C

Основной акцент этой книги сделан на версии Linux 2.6.x, ядро которой было наиболее популярно на момент написания книги. Подробности версии 2.4 также описаны, причем отмечено, чем различаются функции в версиях Linux 2.4 и 2.6. В тех случаях, когда новые функции введены в серии релизов Linux 2.6.x, указана точная версия ядра, в которой они появились (например, 2.6.34).

Что касается библиотеки C, основное внимание уделено GNU-библиотеке C (glibc) 2-й версии. Там, где это важно, приведены различия между версиями glibc 2.x.

Когда это издание готовилось к печати, было выпущено ядро Linux версии 2.6.35, а версия glibc 2.12 уже появилась. Книга написана применительно к этим версиям программного обеспечения. Изменения, которые появились в интерфейсах Linux и в библиотеке glibc после публикации этой книги, будут отмечены на сайте.


Использование программного интерфейса других языков программирования

Хотя примеры программ написаны на языке C, вы можете применять рассмотренные в этой книге интерфейсы из других языков программирования, в частности компилируемых языков C++, Pascal, Modula, Ada, FORTRAN, D, а также таких языков сценариев, как Perl, Python и Ruby. (Для Java необходим другой подход; см., например, работу [Rochkind, 2004].) Понадобятся иные приемы для того, чтобы добиться необходимых определений констант и объявлений функций (за исключением языка C++). Может также потребоваться дополнительная работа для передачи аргументов функции в том стиле, которого требуют соглашения о связях в языке С. Но, несмотря на эти различия, основные понятия не меняются, и вы обнаружите, что информация из этого руководства применима даже при работе с другим языком программирования.

Об авторе

Я начал работать в UNIX и на языке С в 1987 году, когда провел несколько недель за рабочей станцией HP Bobcat, имея при себе первое издание книги Марка Рохкинда «Эффективное UNIX-программирование» (Marc Rochkind, Advanced UNIX Programming) и распечатку руководства по командной оболочке С shell shell (она же csh) (в конечном итоге у нее был довольно потрепанный вид). Подход, который я применял тогда, я стараюсь применять и теперь. Рекомендую его также всем, кто приступает к работе с новой технологией в разработке ПО: потратьте время на чтение документации (если она есть) и пишите небольшие (но постепенно увеличивающиеся) тестовые программы до тех пор, пока не начнете уверенно понимать программное обеспечение. Я обнаружил, что в конечном итоге такой вариант самообучения хорошо окупает себя в плане сэкономленного времени. Многие примеры программ в книге сконструированы так, чтобы подтолкнуть вас к применению этого подхода.