Основы программирования в Linux, 4-е изд. Основы программирования в Linux, 4-е изд. В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек С/С++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка с библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME и KDE, хранения данных с использованием СУБД MySQL и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. BHV 978-5-9775-0289-4
608 руб.
Russian
Каталог товаров

Основы программирования в Linux, 4-е изд.

  • Автор: Ричард Стоунз, Нейл Мэттью
  • Мягкий переплет. Крепление скрепкой или клеем
  • Издательство: BHV
  • Год выпуска: 2009
  • Кол. страниц: 896
  • ISBN: 978-5-9775-0289-4
Временно отсутствует
?
  • Описание
  • Характеристики
  • Отзывы о товаре
  • Отзывы ReadRate
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек С/С++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка с библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME и KDE, хранения данных с использованием СУБД MySQL и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.

Оставить заявку на описание
?
Содержание
Об авторах 1
Благодарности 3
Предисловие 5
Введение 7
Для кого эта книга? 7
Чему посвящена книга? 8
Что вам потребуется для использования книги? 9
Исходный программный код 10
Замечание, касающееся программного кода примеров 11
Общедоступная лицензия проекта GNU 11
Стилевое оформление, принятое в книге 12
Ошибки 13
Сайт p2p.wrox.com 13
Глава 1. Приступая к работе 15
Введение в UNIX, Linux и проект GNU 15
Что такое ОС UNIX? 16
Что такое Linux? 17
Проект GNU и Фонд свободного ПО 18
Дистрибутивы Linux 19
Программирование в ОС Linux 20
Linux-программы 21
Текстовые редакторы 22
Компилятор языка С 22
Маршрутная карта системы разработки 24
Получение справки 31
Резюме 34
Глава 2. Программирование средствами командной оболочки 35
Почему программа в командной оболочке? 36
Немного теории 36
Что такое командная оболочка? 37
Каналы и перенаправление 40
Перенаправление вывода 40
Перенаправление ввода 41
Каналы 41
Командная оболочка как язык программирования 42
Интерактивные программы 42
Создание сценария 44
Превращение сценария в исполняемый файл 45
Синтаксис командной оболочки 47
Переменные 47
Условия 52
Управляющие структуры 55
Функции 68
Команды 71
Выполнение команд 93
Встроенные документы 98
Отладка сценариев 100
По направлению к графическому режиму — утилита dialog 101
Соединяем все вместе 108
Требования 108
Проектирование 108
Резюме 120
Глава 3. Работа с файлами 121
Структура файла в Linux 122
Каталоги 122
Файлы и устройства 123
Системные вызовы и драйверы устройств 125
Библиотечные функции 126
Низкоуровневый доступ к файлам 128
write 128
read 129
open 130
Исходные права доступа 132
Другие системные вызовы для управления файлами 137
Стандартная библиотека ввода/вывода 140
fopen 140
fread 141
fwrite 142
fclose 142
fflush 142
fseek 143
fgetc, getc и getchar 143
fputc, putc и putchar 143
fgets и gets 144
Форматированные ввод и вывод 144
printf, fprintf и sprintf 145
scanf, fscanf и sscanf 147
Другие потоковые функции 149
Ошибки потока 151
Потоки и дескрипторы файлов 151
Ведение файлов и каталогов 152
chmod 152
chown 153
unlink, link и symlink 153
mkdir и rmdir 154
chdir и getcwd 154
Просмотр каталогов 155
opendir 155
readdir 156
telldir 156
seekdir 156
closedir 157
Ошибки 160
strerror 160
perror 161
Файловая система procfs 161
Более сложные приемы: fcntl и mmap 166
fcntl 166
mmap 167
Резюме 170
Глава 4. Окружение Linux 171
Аргументы программы 172
getopt 175
getopt_long 177
Переменные окружения 180
Применение переменных окружения 182
Переменная environ 183
Время и дата 184
Временные файлы 192
Информация о пользователе 194
Информация о компьютере 198
Ведение системных журналов 201
Ресурсы и ограничения 206
Резюме 212
Глава 5. Терминалы 213
Чтение с терминала и запись на терминал 214
Сравнение канонического и неканонического режимов 216
Обработка перенаправленного вывода 217
Диалог с терминалом 219
Драйвер терминала A и общий терминальный интерфейс 222
Обзор 222
Аппаратная модель 223
Структура типа termios 224
Режимы ввода 226
Режимы вывода 226
Режимы управления 227
Локальные режимы 228
Специальные управляющие символы 228
Скорость терминала 232
Дополнительные функции 233
Вывод терминала 238
Тип терминала 238
Установите тип вашего терминала 239
Применение характеристик terminfo 241
Обнаружение нажатий клавиш 247
Виртуальные консоли 250
Псевдотерминалы 251
Резюме 252
Глава 6. Управление текстовыми экранами с помощью библиотеки curses 253
Компиляция с библиотекой curses 254
Терминология библиотеки curses и общие представления 255
Экран 259
Вывод на экран 259
Считывание с экрана 260
Очистка экрана 260
Перемещение курсора 261
Атрибуты символов 261
Клавиатура 264
Режимы клавиатуры 265
Клавиатурный ввод 265
Окна 267
Структура WINDOW 268
Универсальные функции 269
Перемещение и обновление окна 269
Оптимизация обновлений экрана 273
Вложенные окна 274
Дополнительная клавиатура 277
Применение цвета 280
Переопределение цветов 283
Панели 283
Приложение, управляющее коллекцией компакт-дисков 285
Начало нового приложения для работы с коллекцией компакт-дисков 286
Взгляд на функцию main 288
Формирование меню 289
Управление базой данных 291
Запросы к базе данных компакт-дисков 297
Резюме 301
Глава 7. Управление данными 303
Управляемая память 303
Простое выделение памяти 304
Выделение огромных объемов памяти 305
Неправильное обращение к памяти 309
Указатель null 310
Освобождение памяти 312
Другие функции распределения памяти 313
Блокировка файлов 314
Создание файлов с блокировкой 315
Блокировка участков файла 318
Применение вызовов read и write при наличии блокировки 322
Конкурирующие блокировки 328
Другие команды блокировок 332
Взаимоблокировки 332
Базы данных 333
База данных dbm 333
Подпрограммы dbm 335
Функции доступа dbm 337
Дополнительные функции dbm 341
Приложение для работы с коллекцией компакт-дисков 343
Обновление проектного решения 343
Приложение управления базой данных компакт-дисков, использующее dbm 344
Резюме 365
Глава 8. MySQL 367
Установка 368
Пакеты MySQL 368
Настройка после установки 371
Устранение неисправностей после установки 377
Администрирование MySQL 377
Команды 377
Создание пользователей и наделение их правами доступа 383
Пароли 386
Создание базы данных 387
Типы данных 387
Создание таблицы 389
Графические средства 392
Доступ к данным MySQL из программ на C 395
Подпрограммы подключения 396
Обработка ошибок 400
Выполнение SQL-операторов 402
Разные функции 419
Приложение для работы с базой данных компакт-дисков 419
Создание таблиц 421
Вставка данных 424
Доступ к данным приложения из программы на C 427
Резюме 438
Глава 9. Средства разработки 439
Проблемы применения многочисленных исходных файлов 439
Команда make и make-файлы 440
Синтаксис make-файлов 441
Опции и параметры make 441
Комментарии в make-файле 445
Макросы в make-файле 445
Множественные задания 448
Встроенные правила 450
Суффиксы и шаблоны правил 451
Управление библиотеками с помощью make 453
Более сложная тема: make-файлы и подкаталоги 455
Версия GNU команд make и gcc 456
Управление исходным кодом 457
RCS 458
SCCS 465
Сравнение RCS и SCCS 466
CVS 466
Subversion 472
Написание интерактивного справочного руководства 473
Распространение программного обеспечения 477
Программа patch 477
Другие утилиты распространения 479
RPM-пакеты 482
Работа с файлами RPM-пакетов 482
Установка RPM-пакетов 483
Формирование RPM-пакетов 484
Пакеты других форматов 494
Среды разработки 494
KDevelop 495
Другие среды разработки 496
Резюме 497
Глава 10. Отладка 499
Типы ошибок 499
Общие методы отладки 500
Программа с ошибками 501
Анализ кода 504
Оснащение средствами контроля 505
Контролируемое выполнение 507
Отладка с помощью gdb 508
Запуск gdb 509
Выполнение программы 510
Трассировка стека 510
Просмотр переменных 511
Вывод листинга программы 512
Установка точек останова 513
Вставка исправлений с помощью отладчика 517
Дополнительные сведения о gdb 518
Дополнительные средства отладки 519
Lint: удаление ошибок из ваших программ 519
Средства, отслеживающие вызовы функций 523
Выполнение профилирования с помощью prof/gprof 525
Проверки соблюдения условий 526
Устранение ошибок использования памяти 528
ElectricFence 529
valgrind 530
Резюме 534
Глава 11. Процессы и сигналы 535
Что такое процесс? 535
Структура процесса 536
Таблица процессов 538
Просмотр процессов 538
Системные процессы 539
Планирование процессов 542
Запуск новых процессов 544
Замена образа процесса 546
Дублирование образа процесса 548
Ожидание процесса 551
Процессы-зомби 554
Перенаправление ввода и вывода 555
Потоки 557
Сигналы 558
Отправка сигналов 562
Множества сигналов 567
Резюме 572
Глава 12. Потоки POSIX 573
Что такое поток? 573
Достоинства и недостатки потоков 575
Первая программа с применением потоков 576
Одновременное выполнение 581
Синхронизация 583
Синхронизация с помощью семафоров 583
Синхронизация с помощью мьютексов 589
Атрибуты потока 593
Атрибуты планирования потока 598
Отмена потока 599
Потоки в изобилии 602
Резюме 607
Глава 13. Связь между процессами: каналы 609
Что такое канал? 609
Каналы процессов 610
popen 610
pclose 611
Отправка вывода в popen 612
Передача данных большого объема 613
Как реализован вызов popen 615
Вызов pipe 616
Родительский и дочерний процессы 620
Чтение закрытых каналов 622
Каналы, применяемые как стандартные ввод и вывод 623
Именованные каналы: FIFO 627
Доступ к FIFO 628
Более сложная тема: применение каналов FIFO в клиент-серверных приложениях 637
Приложение для работы с базой данных компакт-дисков 641
Цели 643
Реализация 643
Функции интерфейса клиента 647
Интерфейс сервера server.c 654
Канал 659
Резюме, касающееся приложения 665
Резюме 665
Глава 14. Семафоры, совместно используемая память и очереди сообщений 667
Семафоры 667
Описание семафора 669
Теоретический пример 670
Реализация семафоров в Linux 671
Применение семафоров 674
Совместно используемая память 678
shmget 680
shmat 681
shmdt 681
shmctl 681
Очереди сообщений 686
msgget 687
msgsnd 688
msgrcv 689
msgctl 689
Приложение для работы с базой данных компакт-дисков 693
Пересмотр функций сервера 694
Пересмотр функций клиента 696
Команды состояния IPC 698
Отображение состояния семафора 698
Отображение состояния совместно используемой памяти 699
Отображение состояния очереди сообщений 699
Резюме 699
Глава 15. Сокеты 701
Что такое сокет? 702
Соединения на базе сокетов 702
Атрибуты сокета 706
Создание сокета 709
Адреса сокетов 710
Именование сокета 711
Создание очереди сокетов 712
Прием запросов на соединение 712
Запросы соединений 713
Закрытие сокета 714
Обмен данными с помощью сокетов 714
Порядок байтов на компьютере и в сети 718
Сетевая информация 720
Интернет-демон (xinetd/inetd) 725
Параметры сокета 728
Множественные клиенты 729
select 732
Множественные клиенты 736
Дейтаграммы 740
Резюме 743
Глава 16. Программирование в GNOME с помощью GTK+ 745
Введение в систему X 745
X-сервер 746
X-клиент 747
X-протокол 747
Xlib 747
Комплекты инструментов 747
Оконные менеджеры 748
Другие способы создания GUI — платформно-независимые оконные API 749
Введение в GTK+ 749
Система типов GLib 751
Система объектов GTK+ 751
Знакомство с GNOME 752
Установка библиотек разработки GNOME/GTK+ 754
События, сигналы и обратные вызовы 757
Виджеты упаковочных контейнеров 761
Виджеты GTK+ 765
GtkWindow 765
GtkEntry 766
GtkSpinButton 770
GtkButton 772
GtkTreeView 776
Виджеты GNOME 781
Меню GNOME 782
Диалоговые окна 788
GtkDialog 788
Модальное диалоговое окно 790
Немодальные диалоговые окна 791
GtkMessageDialog 792
Приложение для работы с базой данных компакт-дисков 794
Резюме 806
Глава 17. Программирование в KDE с помощью Qt 809
Введение в KDE и Qt 810
Установка Qt 811
Сигналы и слоты 814
Виджеты Qt 822
QLineEdit 822
Кнопки Qt 826
QComboBox 831
QListView 836
Диалоговые окна 839
QDialog 840
QMessageBox 843
QInputDialog 844
Применение qmake для упрощения написания make-файлов 845
Создание меню и панелей инструментов с помощью KDE 846
Приложение для работы с базой данных компакт-дисков с использованием KDE/Qt 851
MainWindow 851
AddCdDialog 855
LogonDialog 857
main.cpp 858
Резюме 860
Глава 18. Стандарты Linux 861
Язык программирования C 862
Краткий урок истории 862
Коллекция компиляторов GNU 863
Опции gcc 864
Интерфейсы и Linux Standards Base 866
Стандартные библиотеки LSB 867
Применение стандарта LSB к библиотекам 869
Инициализация системы LSB 870
Стандарт устройства файловой системы 871
Что еще почитать о стандартах? 875
Резюме 875
Предметный указатель 877
Масса:   810 г
Размеры:   234x 167x 1 мм
Тираж:   2 000
Сведения об издании:   4-е издание
Отзывы
Найти пункт
 Выбрать станцию:
жирным выделены станции, где есть пункты самовывоза
Выбрать пункт:
Поиск по названию улиц:
Подписка 
Введите Reader's код или e-mail
Периодичность
При каждом поступлении товара
Не чаще 1 раза в неделю
Не чаще 1 раза в месяц
Мы перезвоним

Возникли сложности с дозвоном? Оформите заявку, и в течение часа мы перезвоним Вам сами!

Captcha
Обновить
Сообщение об ошибке

Обрамите звездочками (*) место ошибки или опишите саму ошибку.

Скриншот ошибки:

Введите код:*

Captcha
Обновить