Марк Митчелл - Программирование для Linux. Профессиональный подход
- Название:Программирование для Linux. Профессиональный подход
- Автор:
- Жанр:
- Издательство:Вильямс
- Год:2002
- Город:Москва
- ISBN:5-8459-0243-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Марк Митчелл - Программирование для Linux. Профессиональный подход краткое содержание
Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.
Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.
Программирование для Linux. Профессиональный подход - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Вопросы, касающиеся FSF и GNU, направляйте по адресу gnu@gnu.org
.
Комментарии к данному тексту посылайте по адресу webmasters@www.gnu.org
.
Сообщение об авторских правах приведено выше
Free Software Foundation Inc. 59 Temple Place - Suite 530 Boston, MA 02111-1307, USA
Обновлено: 31 июня 2000 г.
Примечания
1
GNU — это рекурсивный акроним, который расшифровывается как GNU's Not UNIX (GNU — это не UNIX).
2
Пользователи, не работающие в X Window, должны нажать , чтобы получить доступ к меню.
3
Введите команду M-x dunnet
, если хотите поиграть в старомодную приключенческую игру.
4
Дополнительную информацию о GCC можно получить по адресу http://gcc.gnu.org
.
5
В Windows исполняемые файлы обычно имеют расширение .exe
, а в Linux - вообще не имеют его. Поэтому в Windows эквивалент данной программы будет, скорее всего, называться reciprocal.exe
.
6
В C++ аналогичное различие существует между потоками cout
и cerr
. Манипулятор endl
добавляет в конец потока символ новой строки и вызывает "выталкивание" буфера. Если состояние буфера временно менять не нужно (из соображений производительности, например), воспользуйтесь вместо манипулятора константой '\n'
.
7
В целях обеспечения безопасной работы потоков переменная errno
реализована в виде макроса, но к ней можно обращаться как к глобальной переменной.
8
Имеются и другие флаги, предназначенные для удаления файлов из архива и выполнения других операций над ним. Все они описаны на man
-странице, посвященной команде ar
.
9
Иногда в документации упоминается переменная LD_RUN_PATH
. Не верьте прочитанному! Данная переменная никак не используется в Linux.
10
Команда kill
позволяет посылать процессам и другие сигналы. Об этом рассказывается в разделе 3.4, "Завершение процесса".
11
Способ синхронизации двух процессов представлен в разделе. 3 4.1, "Ожидание завершения процесса".
12
В чём между ними разница! Сигнал SIGTERM
является запросам на завершение; процесс может его проигнорировать и продолжить свое выполнение.. Сигнал SIGKILL
вызывает немедленное безусловное уничтожение процесса и не может быть обработан.
13
Данный способ не является стандартным. В обязанности программиста входит убедиться, что в процессе подобных преобразований не произойдет потеря значащих разрядов.
14
Ненулевое значение определяет семафор, совместно используемый несколькими процессами, но в Linux такой вариант семафоров не поддерживается (семафоры процессов создаются по-другому, а в данном случае речь идет о потоковых семафорах).
15
Эти же константы используются при работе с файлами. Они описываются в разделе 10.3. "Права доступа к файлам".
16
Команда sort
читает строки текста ил стандартного входного потока, сортирует их в алфавитном порядке и записывает в стандартный выходной поток.
17
Именованный канал можно создать только в Windows NT. В Windows 9х программы могут устанавливать только клиентские соединения.
18
Принтер может требовать, чтобы в конце каждой строки стоял символ возврата каретки (ASCII-код 14), а в конце каждой страницы — символ подачи листа (ASCII-код 12).
19
В большинстве Linux-систем можно переключиться на первый виртуальный терминал, нажав . Чтобы перейти на второй виртуальный терминал, следует нажать и т.д.
20
Мы могли бы использовать программу hexdump
вместо команды od
, так как они делают, по сути, одно и то же. Но когда входной поток исчерпывается, программа hexdump
завершается, а команда od
переходит в режим ожидания. Опция -t x1
сообщат команде od
о том, что содержимое файла должно отображаться в шестнадцатеричном формате.
21
В случае повреждения файловой системы данные, которые были восстановлены, но не связаны с каким-либо файлом, помещаются в каталог lost+found
.
22
В некоторых UNIX-системах эти идентификаторы дополняются нулями, в Linux — нет.
23
В главе 9, "Встроенный ассемблерный код", рассказывается о том, как задействовать ассемблерные инструкции в Linux-программах.
24
В DOS и Windows нумерация последовательных портов начинается с единицы, поэтому порту COM1 соответствует последовательный порт с номером 0 в Linux.
25
Если ядро Linux сконфигурировано правильно, оно поддерживает дополнительные IDE-контроллеры, нумеруемые последовательно начиная от ide2
.
26
Команда hostname
, вызванная без флагов, отображает имя компьютера.
27
В Linux семейство функции exec()
реализовано на основе системного вызова execve()
.
28
NFS (Network File System) — популярная технология совместного использования файлов в сети.
29
Режим копирования при записи означает, что Linux создает для процесса частную копию страницы только тогда, когда процесс записывает в нее какие-то данные.
30
Выражение sin(angle)
обычно преобразуется в вызов функции библиотеки libm
, но если задать флаг -O1
(или включить более сильную оптимизацию), компилятор gcc заменит вызов функции простой ассемблерной инструкцией fsin
.
31
Тот факт, что в системе есть всего один специальный пользователь, послужил причиной появления названия UNIX. Более ранняя операционная система, в которой было несколько специальных пользователей, называлась MULTICS.
32
Ядро может отклонить запрос на доступ к файлу, если один из каталогов на пути к нему недоступен данному пользователю. Например, если процессу не разрешено обращаться к каталогу /tmp/private
, то он не сможет получить доступ к файлу /tmp/private/data
.
33
Название бита является анахронизмом. Оно возникло в те далекие времена, когда наличие этого бита означало запрет на выгрузку программы из памяти по окончании выполнения.
34
Существует также бит смены идентификатора группы (SGID, set group identifier). Программа c установленным битом SGID при запуске примет эффективный идентификатор группы, которой принадлежит файл.
35
Монтирование данного каталога по сети — ошибка системного администратора.
36
Наиболее популярный Web-сервер с открытым кодом — сервер Apache (доступен на Web-узле www.apache.org
).
37
В системе могут присутствовать такие интерфейсы, как eth0
(Ethernet-плата), lo
(интерфейс обратной связи), ppp0
(коммутируемое соединение).
Интервал:
Закладка: