Хрестоматия по программированию на Си в Unix
Андрей Богатырев
Содержание
Напутствие в качестве вступления.
1.
Простые программы и алгоритмы. Сюрпризы, советы.
2.
Массивы, строки, указатели.
3.
Мобильность и машинная зависимость программ. Проблемы с русскими буквами.
4.
Работа с файлами.
5.
Структуры данных.
6.
Системные вызовы и взаимодействие с
UNIX
.
6.1.
Файлы и каталоги.
6.2.
Время в UNIX.
6.3.
Свободное место на диске.
6.4.
Сигналы.
6.5.
Жизнь процессов.
6.6.
Трубы и FIFO-файлы.
6.7.
Нелокальный переход.
6.8.
Хозяин файла, процесса, и проверка привилегий.
6.9.
Блокировка доступа к файлам.
6.10.
Файлы устройств.
6.11.
Мультиплексирование ввода-вывода
6.12.
Простой интерпретатор команд.
7.
Текстовая обработка.
8.
Экранные библиотеки и работа с видеопамятью.
9.
Приложения.
9.1.
Таблица приоритетов операций языка C++
9.2.
Правила преобразований типов.
9.3.
Таблица шестнадцатеричных чисел (HEX).
9.4.
Таблица степеней двойки.
9.5.
Двоичный код: внутреннее представление целых чисел.
10.
Примеры.
Пример 1.
Размен монет.
Пример 2.
Подсчет букв в файле.
Пример 3.
Центрирование строк.
Пример 4.
Разметка текста для
nroff
.
Пример 5.
Инвертирование порядка слов в строках.
Пример 6.
Пузырьковая сортировка.
Пример 7.
Хэш-таблица.
Пример 8.
Простая база данных.
Пример 9.
Вставка/удаление строк в файл.
Пример 10.
Безопасный
free
, позволяющий обращения к автоматическим переменным.
Пример 11.
Поимка ошибок при работе с динамической памятью.
Пример 12.
Копирование/перемещение файла.
Пример 13.
Обход поддерева каталогов в
MS DOS
при помощи
chdir
.
Пример 14.
Работа с сигналами.
Пример 15.
Управление скоростью обмена через линию.
Пример 16.
Просмотр файлов в окнах.
Пример 17.
Работа с иерархией окон в
curses
. Часть проекта
uxcom
.
Пример 18.
Поддержка содержимого каталога. Часть проекта
uxcom
.
Пример 19.
Роллируемое меню. Часть проекта
uxcom
.
Пример 20.
Выбор в строке-меню. Часть проекта
uxcom
.
Пример 21.
Редактор строки. Часть проекта
uxcom
.
Пример 22.
Выбор в прямоугольной таблице. Часть проекта
uxcom
.
Пример 23.
UNIX commander
- простой визуальный Шелл. Головной модуль проекта
uxcom
.
Пример 24.
Общение двух процессов через "трубу".
Пример 25.
Общение процессов через FIFO-файл.
Пример 26.
Общение процессов через общую память и семафоры.
Пример 27.
Протоколирование работы программы при помощи псевдотерминала и процессов.
Пример 28.
Оценка фрагментированности файловой системы.
Пример 29.
Восстановление удаленного файла в
BSD-2.9
.
Пример 30.
Копирование файлов из
MS DOS
в
UNIX
.
Список литературы