Программирование для Linux. Профессиональный подход - [3]
и т.д.). Они отличаются от стандартных библиотечных функций языка С (>fopen()
, >fprintf()
, >fscanf()
и др.). Оба семейства функций находят применение в GNU/Linux, поэтому мы не будем делать акцент на каком-то одном семействе. Низкоуровневые функции описаны в приложении Б, "Низкоуровневый ввод-вывод".
В книге отсутствует вводная информация об операционной системе Linux. Мы предполагаем, что читатели имеют общее представление о том, как взаимодействовать с системой и выполнять базовые операции в графической среде и в режиме командной строки.
В книге используются следующие типографские соглашения.
■ Новые термины выделяются курсивом.
■ Тексты программ, названия функций, переменных и других элементов "компьютерного языка" выделены моноширинным шрифтом, например >printf("Hello, world!\n")
.
■ Имена команд, файлов и каталогов также даны моноширинным шрифтом, например >cd /
.
■ Когда мы показываем взаимодействие пользователя с интерпретатором команд, то ставим в начале строки приглашения символ >%
(в реальной системе вместо него может стоять другое выражение). Все, что находится далее в этой строке, вводится пользователем. Остальные строки — это реакция системы. Например, в диалоге
>% uname
>Linux
система выдала приглашение >%,
пользователь ввел команду >uname
, а система ответила выдачей строки >Linux
.
■ В заголовках к примерам программ указывается имя исходного файла (в скобках). Все листинги можно загрузить по адресу >http://www.advancedlinuxprogramming.com
.
Мы писали программы в Red Hat Linux версии 6.2. В этот дистрибутив входит ядро Linux версии 2.2.14, GNU-бнблиотека языка С версии 2.1.3 и семейство компиляторов EGCS версии 1.1.2. Приведенные программы в общем случае должны работать и в других версиях Linux, в частности в ядре версии 2.4 и с GNU-библиотекой языка С версии 2.2.
От издательства
Вы, читатель этой книги, и есть главный ее критик и комментатор. Мы ценим ваше мнение и хотим знать, что было сделано нами правильно, что можно было сделать лучше в что еще вы хотели бы увидеть изданным нами. Нам интересно услышать и любые другие замечания, которые вам хотелось бы высказать в наш адрес.
Мы ждем ваших комментариев и надеемся на них. Вы можете прислать электронное письмо или просто посетить наш Web-сервер, оставив свои замечания, — одним словом, любым удобным для вас способом дайте нам знать, нравится или нет вам эта книга, а также выскажите свое мнение о том, как сделать наши книги более подходящими для вас.
Посылая письмо или сообщение, не забудьте указать название книги и ее авторов, а также ваш e-mail. Мы внимательно ознакомимся с вашим мнением и обязательно учтем его при отборе и подготовке к изданию последующих книг. Наши координаты:
E-mail: >[email protected]
WWW >http://www.williamspublishing.com
Часть I
Сложные вопросы программирования в среде UNIX/Linux
Глава 1
Начало
В этой главе рассказывается о том, как выполнять базовые операции, связанные с написанием программы на языке С или C++ в среде Linux. В частности, описываются процессы создания и модифицирования исходного текста на C/C++, компиляции этого текста и отладки полученного результата. Те, кто уже знакомы с программированием в Linux, могут смело переходить к главе 2, "Написание качественных программ для среды GNU/Linux".
При изложении материала всей книги мы предполагаем, что читатели знакомы с языком программирования С и C++ и наиболее распространенными функциями стандартной библиотеки языка С. Тексты программ в книге написаны на С, за исключением случаев, когда рассматривается конкретная особенность программирования на C++. Мы также предполагаем, что читатели умеют выполнять базовые операции в интерпретаторе команд Linux, в частности создавать каталоги и копировать файлы. В связи с тем что многие Linux-программисты начинали свой путь в среде Windows, мы иногда будем указывать на сходства и различия между двумя операционными системами.
1.1. Редактор Emacs
Редактор — это программа, используемая для модификации исходных текстов. В Linux множество редакторов, но, очевидно, наиболее популярный и многофункциональный среди них — GNU Emacs.
Emacs — нечто гораздо большее, чем просто редактор. Это необычайно мощная программа, работая в которой можно, к примеру, читать и отправлять электронные сообщения. Способы настройки и расширения ее функциональных возможностей столь обширны, что заслуживают написания отдельной книги. Представьте, что, находясь в Emacs, вы можете путешествовать в Internet!
Впрочем, мы не ограничиваем свободу читателей, привыкших работать в другом редакторе. Ни один из примеров книги не зависит от использования Emacs. Представленный ниже небольшой вводный курс предназначен для тех из вас, кто еще не успел выбрать свой любимый редактор в Linux.
1.1.1. Открытие исходного файла C/C++
Чтобы запустить редактор Emacs, наберите >emacs
в окне терминала и нажмите
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.