В основном мы не всегда проверяли результаты, возвращаемые каждой вызываемой нами функцией, на соответствие ожидаемым. В профессиональном программном коде для реальных приложений мы всегда выполняли бы такую проверку, и вы должны внедрять строгие методы, касающиеся обработки ошибок. (В главе 3 мы обсуждаем некоторые способы обнаружения и обработки ошибок.)
Общедоступная лицензия проекта GNU
Исходный программный код книги сделан доступным на условиях Общедоступной лицензии проекта GNU версии 2 (GNU General Public License, version 2), опубликованной на Web-странице http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. Приведенное далее положение о разрешении и правах применяется ко всему программному коду данной книги.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
(Это программа — свободно распространяемое программное обеспечение; вы можете
распространять ее и/или изменять на условиях Общедоступной лицензии GNU,
опубликованной Фондом свободного программного обеспечения;
либо версии 2 этой лицензии, либо (по вашему усмотрению) любой более свежей версии.)
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
(Эта программа распространяется в расчете на ее полезность, но без каких-либо
гарантий, даже без подразумеваемой гарантии ТОВАРНОГО СОСТОЯНИЯ ПРИ ПРОДАЖЕ И
ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ. Более подробную информацию
см. в Общедоступной лицензии проекта GNU.)
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(Вы должны были получить копию Общедоступной лицензии GNU вместе с этой
программой; если этого не произошло, напишите в Фонд свободного программного
обеспечения по адресу Free Software Foundation, Inc., 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA)
Стилевое оформление, принятое в книге
Для того чтобы помочь вам максимально усвоить текст и следить за тем, что происходит, мы применили во всей книге ряд стилевых оформлений и выделений текста.
Фрагменты, подобные данному, содержат требующую запоминания критически важную информацию, которая непосредственно относится к окружающему тексту, а также советы, подсказки, особенности и замечания, касающиеся текущего обсуждения.
Когда вводятся важные понятия, мы выделяем их курсивом. Символы, которые вы должны ввести
, выделяются жирным моноширинным шрифтом. Элементы интерфейса выделены полужирным шрифтом. Комбинации клавиш обозначаются следующим образом: <Ctrl>+<A>
Программный код и терминальные сеансы мы приводим тремя разными способами:
$ who
root tty1 Sep 10 16:12
rick tty2 Sep 10 16:10
Верхняя строка приведенного кода — это командная строка, а остальные строки отображаются в обычном стиле. Знак $
— приглашение (если для ввода команды требуется суперпользователь, приглашение обозначается знаком #
); жирным шрифтом помечается текст, который вы должны ввести, и для выполнения команды следует нажать клавишу <Enter> (или <Return>). Любой последующий текст, набранный тем же шрифтом, но без выделения жирным, — это вывод обозначенной жирным шрифтом команды. В приведенном примере вы вводите команду who и видите ее вывод в двух строках, расположенных под ней.
Прототипы функций и структуры, определенные в системе Linux, приводятся жирным шрифтом, как показано далее:
#include <stdio.h>
int printf(const char *format, ...);
В программном коде наших примеров строки с выделенным фоном указывают на новый важный материал, например, так:
/* Это новый материал, и соответствующий код выглядит так. */
если код выглядит так, как показано далее (без выделения фоном), он менее важен:
/* Этот код уже встречался, и он выглядит так. */
Часто, когда программа создается на протяжении главы, только что добавленный код первый раз приводится без фона. Например, новая программа будет выглядеть следующим образом.
/* Программный код примера */
/* Это строка завершения. */
Если позже в этой главе мы добавим в нее новые строки, она будет выглядеть так:
/* Программный код примера. */
/* В эти строки */
/* добавляется новый код */
/* Это строка завершения. */
И последнее, принятое в книге стилевое оформление, о котором следует упомянуть, — все примеры программного кода начинаются с заголовка "Упражнение", который помогает разделить код там, где это полезно, выделить его составные части и показать, как развивается приложение. Когда это важно, мы после программного кода включаем раздел "Как это работает" для пояснения основных мест в тексте программы, касающихся изложенной перед ним теории. Мы считаем,, что эти два приема помогают разбить наиболее громоздкие листинги на легко перевариваемые кусочки.
Ошибки
Мы приложили максимум усилий, чтобы избежать ошибок в тексте и программном коде. Но никто не идеален, и ошибки есть. Если вы найдете ошибку в одной из наших книг, мы будем очень благодарны, получив ваше сообщение о ней. Сообщив об ошибке, вы, быть может, убережете другого читателя от многочасового разочарования и в то же время поможете нам, предоставив информацию еще более высокого качества.