Ваш город
Москва
Ваш город Москва?
+7 928 117-10-37
Отдел продаж
Режим работы:
Пн-Сб 10:00—18:00;
Вс выходной
КАТАЛОГ ТОВАРОВ
0КорзинаПусто0 руб.
Товары в корзине
корзина пуста
КАТАЛОГ ТОВАРОВ
Корзина пуста0 руб.0
Товары в корзине
корзина пуста
Корзина пуста0 руб.0
Товары в корзине
корзина пуста

UNIX. Профессиональное программирование. 3-е изд.

UNIX. Профессиональное программирование. 3-е изд.
Эта книга заслуженно пользуется популярностью у серьезных программистов во всем мире, поскольку содержит самую важную и практическую информацию об управлении ядрами UNIX и Linux. Без этих знаний невозможно написать эффективный и надежный код...
Характеристики
Автор(ы):
Уильям Ричард Стивенс, Стивен А. Раго
Издательство:
Питер
Год издания:
2018
Кол-во страниц:
944
Переплёт:
Твердый
Смотреть все
Получение информации о методах доставки
Код: 17849
Нет в наличии
1 930
Количество:
Избранное
Сравнение
Описание

Эта книга заслуженно пользуется популярностью у серьезных программистов во всем мире, поскольку содержит самую важную и практическую информацию об управлении ядрами UNIX и Linux. Без этих знаний невозможно написать эффективный и надежный код.

От основ — файлы, каталоги и процессы — вы постепенно перейдете к более сложным вопросам, таким как обработка сигналов и терминальный ввод/вывод, многопоточная модель выполнения и межпроцессное взаимодействие с применением сокетов.
В общей сложности в этой книге охвачены более 70 интерфейсов, включая функции POSIX асинхронного ввода/вывода, циклические блокировки, барьеры и семафоры POSIX.

Характеристики
Автор(ы)
Уильям Ричард Стивенс, Стивен А. Раго
Переводчик
А. Кисилев
Издательство
Питер
Серия
Для профессионалов
Год издания
2018
ISBN
978-5-4461-0649-3
Возрастное ограничение
16+
Кол-во страниц
944
Формат страниц
70x100/16 (170x240 мм)
Язык
Русский
Переплёт
Твердый
Доп. сведения
Офсетная бумага
Иллюстрации
черно-белые
Тираж
1000 экз.
Вес
1360 г
Отзывы

Loading...
Оглавление

Вступительное слово ко второму изданию.......................................................20

Предисловие........................................................................................................22
Введение........................................................................................................................22
Изменения в третьем издании........................................................................................23
Благодарности...............................................................................................................24
Предисловие ко второму изданию.....................................................................25
Введение........................................................................................................................25
Изменения во втором издании.......................................................................................26
Благодарности...............................................................................................................27
Предисловие к первому изданию.......................................................................29
Введение........................................................................................................................29
Стандарты UNIX.............................................................................................................29
Структура книги.............................................................................................................29
Примеры в книге............................................................................................................30
Перечень систем, использовавшихся для тестирования примеров..................................31
Благодарности...............................................................................................................32
От издательства.............................................................................................................33
Глава 1. Обзор ОС UNIX.......................................................................................34
1.1. Введение.................................................................................................................34
1.2. Архитектура UNIX....................................................................................................34
1.3. Вход в систему........................................................................................................35
1.4. Файлы и каталоги....................................................................................................37
1.5. Ввод и вывод...........................................................................................................42
1.6. Программы и процессы............................................................................................44
1.7. Обработка ошибок...................................................................................................48
1.8. Идентификация пользователя.................................................................................50
1.9. Сигналы..................................................................................................................52
1.10. Представление времени........................................................................................54
1.11. Системные вызовы и библиотечные функции........................................................55
1.12. Подведение итогов................................................................................................58
Упражнения...................................................................................................................58
Глава 2. Стандарты и реализации UNIX............................................................59
2.1. Введение.................................................................................................................59
2.2. Стандартизация UNIX..............................................................................................59
2.2.1. ISO C..............................................................................................................59
2.2.2. IEEE POSIX.....................................................................................................61
2.2.3. Single UNIX Specification.................................................................................66
2.2.4. FIPS...............................................................................................................70
2.3. Реализации UNIX.....................................................................................................70
2.3.1. UNIX System V Release 4.................................................................................71
2.3.2. 4.4BSD...........................................................................................................71
2.3.3. FreeBSD..........................................................................................................72
2.3.4. Linux..............................................................................................................72
2.3.5. Mac OS X........................................................................................................73
2.3.6. Solaris............................................................................................................73
2.3.7. Прочие версии UNIX.......................................................................................73
2.4. Связь между стандартами и реализациями..............................................................74
2.5. Ограничения...........................................................................................................74
2.5.1. Пределы ISO C...............................................................................................76
2.5.2. Пределы POSIX..............................................................................................77
2.5.3. Пределы XSI..................................................................................................81
2.5.4. Функции sysconf, pathconf и fpathconf.............................................................82
2.5.5. Неопределенные пределы времени выполнения............................................91
2.6. Необязательные параметры....................................................................................94
2.7. Макроопределения проверки особенностей.............................................................99
2.8. Элементарные системные типы данных.................................................................100
2.9. Различия между стандартами................................................................................101
2.10. Подведение итогов..............................................................................................102
Упражнения.................................................................................................................102
Глава 3. Файловый ввод/вывод.......................................................................103
3.1. Введение...............................................................................................................103
3.2. Дескрипторы файлов.............................................................................................103
3.3. Функции open и openat..........................................................................................104
3.4. Функция creat........................................................................................................108
3.5. Функция close........................................................................................................109
3.6. Функция lseek........................................................................................................109
3.7. Функция read.........................................................................................................113
3.8. Функция write........................................................................................................114
3.9. Эффективность операций ввода/вывода................................................................115
3.10. Совместное использование файлов.....................................................................117
3.11. Атомарные операции...........................................................................................121
3.12. Функции dup и dup2.............................................................................................123
3.13. Функции sync, fsync и fdatasync...........................................................................125
3.14. Функция fcntl.......................................................................................................126
3.15. Функция ioctl.......................................................................................................132
3.16. /dev/fd.................................................................................................................133
3.17. Подведение итогов..............................................................................................135
Упражнения.................................................................................................................135
Глава 4. Файлы и каталоги...............................................................................137
4.1. Введение...............................................................................................................137
4.2. Функции stat, fstat и lstat.......................................................................................137
4.3. Типы файлов.........................................................................................................139
4.4. set-user-ID и set-group-ID.......................................................................................142
4.5. Права доступа к файлу..........................................................................................143
4.6. Принадлежность новых файлов и каталогов..........................................................146
4.7. Функции access и faccessat.....................................................................................147
4.8. Функция umask......................................................................................................149
4.9. Функции chmod, fchmod и fchmodat.......................................................................151
4.10. Бит sticky.............................................................................................................154
4.11. Функции chown, fchown, fchownat и lchown..........................................................155
4.12. Размер файла......................................................................................................157
4.13. Усечение файлов.................................................................................................158
4.14. Файловые системы...............................................................................................159
4.15. Функции link, linkat, unlink, unlinkat и remove.......................................................162
4.16. Функции rename и renameat.................................................................................166
4.17. Символические ссылки.........................................................................................167
4.18. Создание и чтение символических ссылок...........................................................170
4.19. Временные характеристики файлов.....................................................................171
4.20. Функции futimens, utimensat и utimes...................................................................174
4.21. Функции mkdir, mkdirat и rmdir.............................................................................177
4.22. Чтение каталогов.................................................................................................178
4.23. Функции chdir, fchdir и getcwd..............................................................................183
4.24. Специальные файлы устройств............................................................................186
4.25. Коротко о битах прав доступа к файлам..............................................................188
4.26. Подведение итогов..............................................................................................190
Упражнения.................................................................................................................190
Глава 5. Стандартная библиотека ввода/вывода...........................................192
5.1. Введение...............................................................................................................192
5.2. Потоки и объекты FILE..........................................................................................192
5.3. Стандартные потоки ввода, вывода и сообщений об ошибках...............................194
5.4. Буферизация.........................................................................................................194
5.5. Открытие потока...................................................................................................197
5.6. Чтение из потока и запись в поток........................................................................200
5.7. Построчный ввод/вывод........................................................................................203
5.8. Эффективность стандартных функций ввода/вывода............................................204
5.9. Ввод/вывод двоичных данных...............................................................................207
5.10. Позиционирование в потоке................................................................................208
5.11. Форматированный ввод/вывод............................................................................210
5.12. Подробности реализации.....................................................................................216
5.13. Временные файлы...............................................................................................220
5.14. Потоки ввода/вывода в памяти............................................................................223
5.15. Альтернативы стандартной библиотеке ввода/вывода.........................................227
5.16. Подведение итогов..............................................................................................228
Упражнения.................................................................................................................228
Глава 6. Информация о системе и файлы данных..........................................229
6.1. Введение...............................................................................................................229
6.2. Файл паролей........................................................................................................229
6.3. Теневые пароли....................................................................................................233
6.4. Файл групп............................................................................................................235
6.5. Идентификаторы дополнительных групп...............................................................236
6.6. Различия реализаций............................................................................................238
6.7. Прочие файлы данных...........................................................................................239
6.8. Учет входов в систему...........................................................................................240
6.9. Информация о системе..........................................................................................241
6.10. Функции даты и времени.....................................................................................243
6.11. Подведение итогов..............................................................................................251
Упражнения.................................................................................................................251
Глава 7. Окружение процесса...........................................................................252
7.1. Введение...............................................................................................................252
7.2. Функция main........................................................................................................252
7.3. Завершение работы процесса................................................................................252
7.4. Аргументы командной строки.................................................................................257
7.5. Список переменных окружения..............................................................................258
7.6. Организация памяти программы на языке C..........................................................259
7.7. Разделяемые библиотеки.......................................................................................261
7.8. Распределение памяти...........................................................................................262
7.9. Переменные окружения.........................................................................................266
7.10. Функции setjmp и longjmp....................................................................................270
7.11. Функции getrlimit и setrlimit..................................................................................277
7.12. Подведение итогов..............................................................................................282
Упражнения.................................................................................................................282
Глава 8. Управление процессами.....................................................................284
8.1. Введение...............................................................................................................284
8.2. Идентификаторы процесса....................................................................................284
8.3. Функция fork..........................................................................................................286
8.4. Функция vfork........................................................................................................292
8.5. Функции exit..........................................................................................................294
8.6. Функции wait и waitpid...........................................................................................296
8.7. Функция waitid.......................................................................................................303
8.8. Функции wait3 и wait4............................................................................................304
8.9. Гонка за ресурсами................................................................................................305
8.10. Функции exec.......................................................................................................308
8.11. Изменение идентификаторов пользователя и группы..........................................315
8.12. Интерпретируемые файлы...................................................................................321
8.13. Функция system...................................................................................................326
8.14. Учет использования ресурсов процессами...........................................................331
8.15. Идентификация пользователя.............................................................................337
8.16. Планирование процессов.....................................................................................338
8.17. Временные характеристики процесса...................................................................342
8.18. Подведение итогов..............................................................................................345
Упражнения.................................................................................................................345
Глава 9. Взаимоотношения между процессами..............................................347
9.1. Введение...............................................................................................................347
9.2. Вход с терминала..................................................................................................347
9.3. Вход в систему через сетевое соединение.............................................................353
9.4. Группы процессов..................................................................................................356
9.5. Сеансы..................................................................................................................357
9.6. Управляющий терминал........................................................................................359
9.7. Функции tcgetpgrp, tcsetpgrp и tcgetsid...................................................................361
9.8. Управление заданиями..........................................................................................362
9.9. Выполнение программ командной оболочкой........................................................367
9.10. Осиротевшие группы процессов..........................................................................371
9.11. Реализация в FreeBSD..........................................................................................374
9.12. Подведение итогов..............................................................................................376
Упражнения.................................................................................................................376
Глава 10. Сигналы.............................................................................................377
10.1. Введение.............................................................................................................377
10.2. Концепция сигналов............................................................................................377
10.3. Функция signal.....................................................................................................389
10.4. Ненадежные сигналы...........................................................................................393
10.5. Прерванные системные вызовы...........................................................................394
10.6. Реентерабельные функции..................................................................................397
10.7. Семантика сигнала SIGCLD...................................................................................400
10.8. Надежные сигналы. Терминология и семантика...................................................403
10.9. Функции kill и raise...............................................................................................404
10.10. Функции alarm и pause.......................................................................................406
10.11. Наборы сигналов...............................................................................................412
10.12. Функция sigprocmask..........................................................................................414
10.13. Функция sigpending............................................................................................415
10.14. Функция sigaction...............................................................................................418
10.15. Функции sigsetjmp и siglongjmp..........................................................................424
10.16. Функция sigsuspend............................................................................................428
10.17. Функция abort....................................................................................................434
10.18. Функция system.................................................................................................437
10.19. Функции sleep, nanosleep и clock_nanosleep........................................................442
10.20. Функция sigqueue...............................................................................................446
10.21. Сигналы управления заданиями.........................................................................447
10.22. Имена и номера сигналов..................................................................................450
10.23. Подведение итогов............................................................................................451
Упражнения.................................................................................................................452
Глава 11. Потоки................................................................................................454
11.1. Введение.............................................................................................................454
11.2. Понятие потоков..................................................................................................454
11.3. Идентификация потоков......................................................................................455
11.4. Создание потока..................................................................................................457
11.5. Завершение потока..............................................................................................460
11.6. Синхронизация потоков.......................................................................................468
11.6.1. Мьютексы...................................................................................................471
11.6.2. Предотвращение тупиковых ситуаций........................................................474
11.6.3. Функция pthread_mutex_timedlock..............................................................479
11.6.4. Блокировки чтения-записи.........................................................................480
11.6.5. Блокировки чтения-записи с тайм-аутом....................................................485
11.6.6. Переменные состояния...............................................................................485
11.6.7. Циклические блокировки............................................................................489
11.6.8. Барьеры.....................................................................................................491
11.7. Подведение итогов..............................................................................................495
Упражнения.................................................................................................................495
Глава 12. Управление потоками.......................................................................496
12.1. Введение.............................................................................................................496
12.2. Пределы для потоков..........................................................................................496
12.3. Атрибуты потока..................................................................................................497
12.4. Атрибуты синхронизации.....................................................................................502
12.4.1. Атрибуты мьютексов..................................................................................502
12.4.2. Атрибуты блокировок чтения-записи..........................................................511
12.4.3. Атрибуты переменных состояния................................................................512
12.4.4. Атрибуты барьеров.....................................................................................513
12.5. Реентерабельность..............................................................................................513
12.6. Локальные данные потоков.................................................................................518
12.7. Принудительное завершение потоков..................................................................523
12.8. Потоки и сигналы................................................................................................527
12.9. Потоки и fork.......................................................................................................531
12.10. Потоки и операции ввода/вывода......................................................................535
12.11. Подведение итогов............................................................................................536
Упражнения.................................................................................................................536
Глава 13. Процессы-демоны.............................................................................538
13.1. Введение.............................................................................................................538
13.2. Характеристики демонов.....................................................................................538
13.3. Правила программирования демонов...................................................................541
13.4. Журналирование ошибок.....................................................................................544
13.5. Демоны в единственном экземпляре....................................................................549
13.6. Соглашения для демонов.....................................................................................551
13.7. Модель клиент-сервер.........................................................................................555
13.8. Подведение итогов..............................................................................................556
Упражнения.................................................................................................................556
Глава 14. Расширенные операции ввода/вывода..........................................557
14.1. Введение.............................................................................................................557
14.2. Неблокирующий ввод/вывод................................................................................557
14.3. Блокировка записей.............................................................................................561
14.4. Мультиплексирование ввода/вывода...................................................................577
14.4.1. Функции select и pselect..............................................................................580
14.4.2. Функция poll...............................................................................................585
14.5. Асинхронный ввод/вывод....................................................................................588
14.5.1. Асинхронный вывод в System V..................................................................589
14.5.2. Асинхронный ввод/вывод в BSD.................................................................590
14.5.3. Асинхронный ввод/вывод в POSIX..............................................................590
14.6. Функции readv и writev........................................................................................600
14.7. Функции readn и writen........................................................................................602
14.8. Операции ввода/вывода с отображаемой памятью..............................................604
14.9. Подведение итогов..............................................................................................612
Упражнения.................................................................................................................612
Глава 15. Межпроцессные взаимодействия....................................................614
15.1. Введение.............................................................................................................614
15.2. Неименованные каналы.......................................................................................616
15.3. Функции popen и pclose.......................................................................................623
15.4. Сопроцессы.........................................................................................................629
15.5. FIFO.....................................................................................................................634
15.6. XSI IPC................................................................................................................638
15.6.1. Идентификаторы и ключи..........................................................................638
15.6.2. Структура прав доступа..............................................................................640
15.6.3. Конфигурируемые пределы........................................................................641
15.6.4. Преимущества и недостатки.......................................................................641
15.7. Очереди сообщений.............................................................................................643
15.8. Семафоры............................................................................................................649
15.9. Разделяемая память............................................................................................656
15.10. Семафоры POSIX................................................................................................664
15.11. Свойства взаимодействий типа клиент-сервер...................................................670
15.12. Подведение итогов............................................................................................673
Упражнения.................................................................................................................674
Глава 16. Межпроцессные взаимодействия в сети: сокеты...........................676
16.1. Введение.............................................................................................................676
16.2. Дескрипторы сокетов...........................................................................................676
16.3. Адресация...........................................................................................................681
16.3.1. Порядок байтов..........................................................................................681
16.3.2. Форматы адресов.......................................................................................683
16.3.3. Определение адреса..................................................................................685
16.3.4. Присваивание адресов сокетам..................................................................692
16.4. Установка соединения.........................................................................................694
16.5. Передача данных.................................................................................................698
16.6. Параметры сокетов..............................................................................................712
16.7. Экстренные данные..............................................................................................715
16.8. Неблокирующий и асинхронный ввод/вывод.......................................................716
16.9. Подведение итогов..............................................................................................717
Упражнения.................................................................................................................718
Глава 17. Расширенные возможности IPC......................................................719
17.1. Введение.............................................................................................................719
17.2. Сокеты домена UNIX............................................................................................719
17.3. Уникальные соединения.......................................................................................725
17.4. Передача дескрипторов файлов...........................................................................731
17.5. Сервер открытия файлов, версия 1......................................................................742
17.6. Сервер открытия файлов, версия 2......................................................................748
17.7. Подведение итогов...............................................................................................759
Упражнения.................................................................................................................759
Глава 18. Терминальный ввод/вывод.............................................................761
18.1. Введение.............................................................................................................761
18.2. Обзор..................................................................................................................761
18.3. Специальные символы ввода...............................................................................770
18.4. Получение и изменение характеристик терминала..............................................776
18.5. Флаги режимов терминала...................................................................................777
18.6. Команда stty........................................................................................................784
18.7. Функции для работы со скоростью передачи........................................................785
18.8. Функции управления линией связи......................................................................786
18.9. Идентификация терминала..................................................................................787
18.10. Канонический режим.........................................................................................793
18.11. Неканонический режим......................................................................................796
18.12. Размер окна терминала......................................................................................803
18.13. termcap, terminfo и curses..................................................................................805
18.14. Подведение итогов............................................................................................806
Упражнения.................................................................................................................806
Глава 19. Псевдотерминалы.............................................................................807
19.1. Введение.............................................................................................................807
19.2. Обзор..................................................................................................................807
19.3. Открытие устройств псевдотерминалов...............................................................814
19.4. Функция pty_fork.................................................................................................819
19.5. Программа pty.....................................................................................................822
19.6. Использование программы pty.............................................................................826
19.7. Дополнительные возможности.............................................................................833
19.8. Подведение итогов..............................................................................................835
Упражнения.................................................................................................................835
Глава 20. Библиотека базы данных.................................................................837
20.1. Введение.............................................................................................................837
20.2. Предыстория.......................................................................................................837
20.3. Библиотека..........................................................................................................838
20.4. Обзор реализации...............................................................................................841
20.5. Централизация или децентрализация?................................................................845
20.6. Одновременный доступ.......................................................................................847
20.7. Сборка библиотеки..............................................................................................849
20.8. Исходный код......................................................................................................849
20.9. Производительность............................................................................................878
20.10. Подведение итогов............................................................................................884
Упражнения.................................................................................................................885
Глава 21. Взаимодействие с сетевым принтером...........................................887
21.1. Введение.............................................................................................................887
21.2. Протокол печати через Интернет.........................................................................887
21.3. Протокол передачи гипертекста..........................................................................891
21.4. Очередь печати...................................................................................................892
21.5. Исходный код......................................................................................................894
21.6. Подведение итогов..............................................................................................942
Упражнения.................................................................................................................942
Приложение А. Прототипы функций..........................................www.piter.com
Приложение В. Различные исходные тексты .............................www.piter.com
Приложение С. Варианты решения некоторых упражнений ......www.piter.com
Приложения к книге доступны по ссылке: https://goo.gl/AoCBfd.

Помощь
+7 928 117-10-37
Отдел продаж
Если у вас возникли вопросы при оформлении заказа, обратитесь по указанным контактам.
Мы используем файлы cookie, чтобы сайт был лучше для вас.