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

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

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

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

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

Обед

Кофе брейк

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

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

Форма обучения: Очно/Дистанционно
Ближайшие даты
Уточняйте у менеджера
Продолжительность: 4 дня 32 ак.часа
Стоимость 45 000 руб.
Целевая аудитория

Курс рассчитан на программистов, окончивших курс «Программирование на языке 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

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