Предисловие Предисловие ПРЕДИСЛОВИЕ Данное Руководство содержит информацию о программировании в среде операционной системы UNIX. Целью Руководства не является обучение написанию программ. Напротив, обсуждаются готовые тексты программ, и внимание при этом акцентируется на других видах деятельности, являющихся частью всего процесса разработки программ. Круг читателей. Необходимые предварительные знания Как следует из названия, данное Руководство предназначено для программистов, в особенности для тех, кто не имеет большого опыта работы в ОС UNIX. Для чтения Руководства не требуется специальной программистской подготовки. Надеемся, что книга бу- дет полезна как тем, кто занимается программированием эпизоди- чески, так и тем, кто разрабатывает большие прикладные системы. Программистам высокого класса, а также программистам, занимаю- щимся разработкой системного программного обеспечения, Руко- водство может показаться поверхностным. Для них рекомендуется Справочник программиста. Предполагается, что читатель знает, как пользоваться термина- лом, а также знаком с такими элементами ОС UNIX, как редактор и файловая система. Тем, кто не уверен в своих знаниях об этих основных инструментах, рекомендуется сначала ознакомиться с Ру- ководством пользователя. Организация Руководства Весь материал Руководства разбит на главы следующим образом: Глава 1 - Программирование в ОС UNIX, обзор. Описываются черты ОС UNIX, формирующие программное ок- ружение. Имеется в виду концепция программирования, предполагающая максимальное использование готовых прог- рамм, а также каналы, специальные файлы, программирова ние на языке shell и т.д. Как основа для последующего материала определяются три различных уровня программи- рования, представляемых программистами-одиночками, прикладными программистами и системными программистами. Глава 2 - Основы программирования. Описываются основные утилиты, необходимые для получения выполняемых программ. Последующие главы - средства поддержки разработок, раз- личные описания и руководства. Эти главы содержит подробную информацию об использова- нии многих инструментальных средств ОС UNIX. Связь с языком C Несмотря на то, что ОС UNIX поддерживает многие языки програм- мирования, а C-компиляторы имеются и в других операционных сис- темах, связь между языком C и ОС UNIX остается очень тесной. Действительно, большая часть самой операционной системы написа- на на C, а во многих организациях, использующих ОС UNIX, увели чивается доля программ, разрабатываемых на C. Поэтому, несмотря на то, что данное Руководство предназначается программистам не- зависимо от используемого ими языка, все примеры приведены на C, за исключением, естественно, тех случаев, когда обсуждаются вопросы, связанные с другими языками. Соглашения Везде, где в тексте Руководства приводятся примеры выдачи компьютера и/или вводимые Вами команды, мы следуем стандартной схеме обозначений, принятой во всей документации по ОС UNIX: Жирным шрифтом изображаются команды и их аргументы, ко- торые следует вводить именно так, как указано в тексте. Курсивом выделяются имена описываемых команд и функций, а также шаблоны аргументов (формальные параметры), вместо которых при вызове требуется подставлять реаль- ные значения. Считается, что после каждой команды или вводимого отве та на вопрос нажимается клавиша возврата каретки. Чтобы показать, что ожидается только нажатие клавиши возврата каретки самой по себе, в тексте используется обозначе ние . Чтобы показать, что ожидается ввод управляющего симво- ла, применяются обозначения типа CTRL+D. Подобна конструкция предписывает нажать клавишу D, удерживая нажатой клавишу CTRL. В качестве стандартных приглашений для обычного пользо- вателя и суперпользователя используются символы $ и # соответственно. Приглашение $ означает, что Вы вошли в систему как обычный пользователь, # - как пользователь root. Если в примере используется приглашение #, это означа- ет, что иллюстрируемую этим примером команду может при- менять только пользователь root. Ссылки Ссылки на статьи из Справочников пользователя, программиста и администратора ОС UNIX имеют вид название_статьи(номер_разд ла). Не следует путать такие ссылки с примерами вызовов функ- ций. Пронумерованные разделы расположены в следующих Справочни- ках: Раздел 1 - в Справочнике пользователя. Разделы 2, 3, 4, 5 - в Справочнике программиста. Разделы 1M, 7, 8 - в Справочнике администратора. Примеры Несмотря на то, что все усилия были направлены на точную пере- дачу изображения, появляющегося на экране терминала, возможно, что Ваша система будет формировать несколько другую выдачу, поскольку некоторые экранные изображения зависят от конкретной конфигурации компьютера. Кроме того, различия в модификациях операционной системы также могут приводить к некоторым отличиям изображения. Мы пытались отладить все включенные в Руководство примеры прог- рамм, чтобы они компилировались и работали в том виде, как они приведены в тексте. Имеющиеся в Руководстве фрагменты программ, хоть и не компилировались, написаны с той же степенью аккурат ности.