Программирование в Linux на C/C++

• Приобретаемые навыки:
• Понимание процесса сборки ПО и специфики компилятора C/C++ из состава GCC
• Умение разрабатывать и использовать разделяемые библиотеки
• Навыки по использованию функций файлового ввода-вывода
• Понимание механизмов обеспечения многозадачности и межпроцессного
взаимодействия и умение их использовать
• Навыки по использованию файловых и сетевых сокетов
• Понимание механизма сигналов и навыки по его использованию
• Знание различий между процессами и потоками, использование многопоточности
и ее специфики
• Навыки по созданию демонов, понимание различий между демонами и
прикладным ПО
• Понимание специфики консольного ввода-вывода и умение ее использовать
• Понимание специфики отображаемых в память файлов и умение их использовать

Код: IT033
Включено в курс

Книги и материалы

Электронные документы

Обед

Кофе брейк

Документы об обучении

Удостоверение о повышении квалификации

Форма обучения: Очно/Дистанционно
Ближайшие даты
Уточняйте у менеджера
Продолжительность: 4 дня 32 ак.часа
Стоимость 47 900 ₽
Герасимова Елена Александровна Куратор
8 (495) 120 04 02 it@infosystem.ru
Целевая аудитория

Курс рассчитан на программистов, окончивших курс «Программирование на языке C/C+»
или имеющих эквивалентную подготовку.

Программа
  • 1. Введение

    • Ознакомление со спецификой сборки ПО в GNU/Linux

    • Ознакомление с консольными текстовыми редакторами

    • Ручная и автоматическая сборка ПО

    • Модель Клиент-Интерфейс-Сервер (КИС)

    • Статическая сборка библиотек

    • Совместно используемые библиотеки

    • Работа с переменными окружения

  • 2. Низкоуровневый ввод-вывод и файловые операции

    • Обзор механизмов ввода-вывода в Linux

    • Файловые дескрипторы

    • Системные вызовы: open, close, write, read и lseek

    • Типы файлов

    • Индексные дескрипторы и жесткие ссылки

    • Права доступа к файлу

    • Файловая система proc

    • Два способа прочесть содержимое директории

    • Разреженные файлы

    • Блокировка областей файла

  • 3. Межпроцессное взаимодействие

    • Способы межпроцессного взаимодействия: каналы, сообщения, разделяемая память и семафоры

    • Неименованные каналы

    • Именованные каналы

    • Сообщения

    • Разделяемая память

    • Семафоры

  • 4. Сокеты

    • Сокеты в файловом пространстве имен (UNIX-сокеты)

    • Парные сокеты

    • Сетевые сокеты

  • 5. Сигналы

    • Знакомство с сигналами

    • Отличие сигналов от других механизмов межпроцессного взаимодействия

    • Специфика обработки сигналов

  • 6. Процессы

    • Клонирование процессов - fork()

    • Замена исполняемого процесса - exec()

    • Зомби - причины возникновения и способы их устранения

  • 7. Потоки

    • Потоки и процессы

    • Специфика построения многопоточных приложений

    • Досрочное завершение потока

  • 8. Потоки (продолжение)

    • Создание обработчика завершения потока

    • Средства синхронизации потоков

    • Атрибуты потоков

  • 9. Демоны (службы)

    • Отличие демона от консольной утилиты

    • Специфика разработки демонов

    • Создание демона использующего сетевые сокеты

  • 10. Консольный ввод-вывод

    • Предотвращение перенаправления вывода

    • Управление терминалом

    • Сокрытие пароля пользователя при аутентификации

  • 11. Отображаемая памят

    • Отображение обычного файла

    • Совместный доступ к файлу

    • Частные отображения

    • Другие применения mmap

Преподаватели