Скачиваний:
56
Добавлен:
08.01.2014
Размер:
2.6 Mб
Скачать

Глава 10.Сокеты 224

10.1. Введение 224

10.2. Типы соединения 224

10.3. Адресация 225

10.3.1. Адресация Internet 225

10.3.2. Порты 225

10.4. Интерфейс сокетов 226

10.4.1. Создание сокета 226

10.5. Программирование в режиме TCP-соединения 227

10.5.1. Связывание 228

10.5.2. Включение приема TCP-соединений 228

10.5.3. Прием запроса на установку TCP-соединения 228

10.5.4. Подключение клиента 230

10.5.5. Пересылка данных 231

10.5.6. Закрытие TCP-соединения 233

10.6. Программирование в режиме пересылок UDP-дейтаграмм 235

10.6.1. Прием и передача UDP-сообщений 236

10.7. Различия между двумя моделями 238

Глава 11. Стандартная библиотека ввода/вывода 239

11.1. Введение 239

11.2. Структура TFILE 239

11.3. Открытие и закрытие потоков: процедуры fopen и fclose 240

11.4. Посимвольный ввод/вывод: процедуры getc и putc 242

11.5. Возврат символов в поток: процедура ungetc 243

11.6. Стандартный ввод, стандартный вывод и стандартный вывод диагностики 245

11.7. Стандартные процедуры опроса состояния 246

11.8. Построчный ввод и вывод 247

11.9. Ввод и вывод бинарных данных: процедуры fread и fwrite 249

11.10. Произвольный доступ к файлу: процедуры fseek, rewind и ftell 252

11.11. Форматированный вывод: семейство процедур printf 252

11.12. Форматированный ввод: семейство процедур scanf 257

11.13. Запуск программ при помощи библиотек стандартного ввода/вывода 260

11.14. Вспомогательные процедуры 265

11.14.1. Процедуры freopen и fdopen 265

11.14.2. Управление буфером: процедуры setbuf и setvbuf 265

Глава 12. Разные дополнительные системные вызовы и библиотечные процедуры 267

12.1. Введение 267

12.2. Управление динамическим распределением памяти 267

12.3. Ввод/вывод с отображением в память и работа с памятью 272

12.4. Время 276

12.5. Работа со строками и символами 278

12.5.1. Семейство процедур strings 278

12.5.2. Преобразование строк в числовые значения 280

12.5.3. Проверка и преобразование символов 280

12.6. Дополнительные средства 281

12.6.1. Дополнение о сокетах 282

12.6.2. Потоки управления 282

12.6.3. Расширения режима реального времени 284

12.6.4. Получение параметров локальной системы 284

12.6.5. Интернационализация 285

12.6.6. Математические функции 286

12.6.7. Работа с портами ввода вывода 286

Глава 13. Задачи с решениями 287

13.1. Введение 287

13.2. Обработка текста 287

13.3. Бинарные файлы 305

13.4. Каталоги 309

13.5. Файловые системы 327

13.6. Файловая система proc 329

13.7. Управление файлами 333

13.8. Управление процессами 342

13.9. Программные каналы 351

13.10. Управление терминалом 355

13.11. Дата и время 355

13.12. Генератор лексических анализаторов lex 362

Приложение 1. Коды ошибок переменной linuxerror и связанные с ними сообщения 368

Введение 368

Список кодов и сообщений об ошибках 368

Приложение 2. История UNIX 375

Основные стандарты 375

Приложение 3. Модуль stdio 377

Приложение 4. Замечания о компиляции во Free Pascal 2.0 395

Литература 418

Предисловие о книге

В основу данной книги положено второе издание руководства программиста UNIX System Programming: A programmer’s guide to software development by Keith Haviland, Dina Gray, Ben Salama. Очень удачное по структуре и подбору примеров, это руководство является одним из лучших учебников по системному программированию в UNIX, поэтому с самого начала мы посчитали уместным сохранить их, исправив и дополнив в соответствии с новыми возможностями Linux/BSD и компилятора Free Pascal.

На первом этапе нашей работы был создан модуль stdio, необходимый для совместимости со стандартной библиотекой языка Си. В модуль вошли множество структур данных, процедур и функций, не входящих в библиотечные модули Free Pascal, но существенно облегчающие жизнь программиста.

На втором этапе примеры из книги Кейт Хэвиленд, Даны Грей и Бена Саламы были переведены с Си на Паскаль. Это потребовало модификации значительной части текста книги, посвященной описанию используемых библиотечных функций и системных вызовов.

Наконец, книга была дополнена описанием структур данных, процедур и функций библиотечных модулей linux, ipc и sockets, специфичных для ОС Linux/BSD.

В результате проделанной работы была получена данная книга, в которой сохранилось часть исходного текста из книги Кейт Хэвиленд, Даны Грей и Бена Саламы. Разумеется, при необходимости эти фрагменты могут быть заменены на другие, но результатом этого будет всего лишь изложение известной справочной информации иными словами.

Соседние файлы в папке Полищук, Семериков. Системное программирование в UNIX средствами Free Pascal