Арнольд Роббинс - Linux программирование в примерах
- Название:Linux программирование в примерах
- Автор:
- Жанр:
- Издательство:Кудиц-Образ
- Год:2005
- Город:Москва
- ISBN:5-9579-0059-1
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Арнольд Роббинс - Linux программирование в примерах краткое содержание
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Linux программирование в примерах - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Вещи, находящиеся на компьютере, обозначаются моноширинными шрифтом, как в случае имен файлов ( foo.c
) и названий команд ( ls
, grep
). Короткие фрагменты, которые вы вводите, дополнительно заключаются в одинарные кавычки: ' ls -l *.с
'
$
и >
являются первичным и вторичным приглашениями оболочки Борна и используются при отображении интерактивных примеров. Ввод пользователя выделяется другим шрифтом от обычного вывода компьютера в примерах. Примеры выглядят следующим образом:
$ ls -1/* Просмотр файлов. Опция - цифра 1, а не буква l */
foo
bar
baz
Мы предпочитаем оболочку Борна и ее варианты (ksh93, Bash) по сравнению с оболочкой С; соответственно на всех наших примерах показана лишь оболочка Борна. Знайте, что правила применения кавычек и переноса на следующую строку в оболочке С другие; если вы используете ее, то на свой страх и риск! [8] См. справочные страницы csh (1) и tcsh (1) и книгу Using csh & tcsh , by Paul DuBois, O'Reilly & Associates. Sebastopol, CA. USA, 1995. ISBN 1-56592-132-1 — Примеч. автора .
При ссылках на функции в программах мы добавляем к имени функции пустую пару скобок: printf()
, strcpy()
. При ссылке на справочную страницу (доступную по команде man), мы следуем стандартному соглашению Unix по написанию имени команды или функции курсивом, а раздела — в скобках после имени обычным шрифтом: awk (1), printf (3) [9] Соответствующие справочные страницы можно посмотреть с помощью man 1 awk и man 3 printf — Примеч. науч. ред .
.
Вы можете захотеть получить копни программ, которые мы использовали в данной книге, для своих собственных экспериментов и просмотра. Весь исходный код доступен через Интернет, а ваш дистрибутив GNU/Linux содержит исходный код для инструментов GNU.
Архивы различных «древних» версий Unix поддерживаются Обществом наследства UNIX (The UNIX Heritage Society — TUHS), http://www.tuhs.org
.
Наибольший интерес представляет возможность просматривать архив старых исходных кодов Unix через веб. Начните с http://minnie.tuhs.org/UnixTree/
. Все примеры кода в данной книге из седьмого издания исследовательской системы UNIX, известной также как «V7».
Сайт TUHS физически расположен в Австралии, хотя имеются зеркала архива по всему миру — см. http://www.tuhs.org/archive_sites.html
. Эта страница также указывает, что архив доступен для зеркала через rsync
. (Если у вас нет rsync
, см. http://rsync.samba.org/
: это стандартная утилита на системах GNU/Linux.)
Чтобы скопировать весь архив, потребуется примерно 2-3 гигабайта дискового пространства. Для копирования архива создайте пустой каталог, а в нем выполните следующие команды:
mkdir Applications 4BSD PDP-11 PDP-11/Trees VAX Other
rsync -avz minnie.tuhs.org::UA_Root .
rsync -avz minnie.tuhs.org::UA_Applications Applications
rsync -avz minnie.tuhs.org::UA_4BSD 4BSD
rsync -avz minnie.tuhs.org::UA_PDP11 PDP-11
rsync -avz minnie.tuhs.org::UA_PDP11_Trees PDP-11/Trees
rsync -avz minnie.tuhs.org::UA_VAX VAX
rsync -avz minnie.tuhs.org::UA_Other Other
Вы можете пропустить копирование каталога Trees
, который содержит извлечения из нескольких версий Unix и занимает на диске около 700 мегабайт.
В рассылке TUHS можно также поинтересоваться, нет ли поблизости от вас кого-нибудь, кто мог бы предоставить вам архив на CD-ROM, чтобы избежать пересылки по Интернету такого большого количества данных.
Группа в Southern Storm Software, Pty. Ltd. в Австралии «модернизировала» часть кода уровня пользователя V7, так что его можно откомпилировать и запустить на современных системах, особенно на GNU/Linux. Этот код можно загрузить с их веб-сайта [10] http://www.southern-storm.com.au/v7upgrade.html — Примеч. автора .
.
Интересно отметить, что код V7 не содержит в себе каких-либо уведомлений об авторских правах или разрешениях. Авторы писали код главным образом для себя и своего исследования, оставив проблемы разрешений отделу корпоративного лицензирования AT&T.
Если вы используете GNU/Linux, ваш дистрибутив поступит с исходным кодом, предположительно в формате, используемом для упаковки (файлы RPM Red Hat, файлы DEB Debian, файлы .tar.gz
Slackware и т.д.) Многие примеры в книге взяты из GNU Coreutils, версия 5.0. Найдите соответствующий CD-ROM для своего дистрибутива GNU/Linux и используйте для извлечения кода соответствующий инструмент. Или следуйте для получения кода инструкциям в следующих нескольких абзацах.
Если вы предпочитаете самостоятельно получать файлы из ftp-сайта GNU, вы найдете его по адресу: ftp://ftp.gnu.org/gnu/coreutils/coreutils-5.0.tar.gz
.
Для получения файла можно использовать утилиту wget
:
$ wget ftp://ftp.gnu.org/ena/coreutils/coreuitils-5.0.tar.gz
/* Получить дистрибутив */
/* ... здесь при получении файла куча вывода ... */
В качестве альтернативы можно использовать для получения файла старый добрый ftp
:
$ ftp ftp.gnu.org/* Подключиться к ftp-сайту GNU */
Connected to ftp.gnu.org (199.232.41.7).
220 GNU FTP server ready.
Name (ftp.gnu.org:arnold): anonymous/* Использовать анонимный ftp */
331 Please specify the password.
Password: /* Пароль на экране не отображается */
230-If you have any problems with the GNU software or its downloading,
230-please refer your questions to .
... /* Куча вывода опущена */
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /gnu/coreutils/* Перейти в каталог Coreutils */
250 Directory successfully changed.
ftp> bin
200 Switching to Binary mode.
ftp> hash/* Выводить символы # по мере закачки */
Hash mark printing on (1024 bytes/hash mark).
ftp> get coreutils-5.0.tar.gz/* Retrieve file */
local: coreutils-5.0.tar.gz
remote: coreutils-5.0.tar.gz
227 Entering Passive Mode (199,232,41,7,86,107)
150 Opening BINARY mode data connection for coreutils-5.0.tar.gz (6020616 bytes)
######################################################################
######################################################################
...
226 File send OK.
6020616 bytes received in 2.03e+03 secs (2.9 Kbytes/sec)
ftp> quit/* Закончить работу */
221 Goodbye.
Получив файл, извлеките его следующим образом:
$ gzip -dc < coreutils-5.0.tar.gz | tar -xvpf -/* Извлечь файлы */
/* ... при извлечении файла куча вывода ... */
Системы, использующие GNU tar, могут использовать следующее заклинание:
$ tar -xvpzf coreutils-5.0.tar.gz/* Извлечь файлы */
/* ... при извлечении файла куча вывода ... */
В соответствии с общедоступной лицензией GNU, вот сведения об авторских правах для всех GNU программ, процитированных в данной книге. Все программы являются «свободным программным обеспечением; вы можете распространять их и/или модифицировать на условиях общедоступной лицензии GNU в изданном Фондом бесплатных программ виде; либо версии 2 лицензии, либо (по вашему выбору) любой последующей версии». Текст общедоступной лицензии GNU см. в приложении С «Общедоступная лицензия GNU».
Читать дальшеИнтервал:
Закладка: