
- •Введение в системное программирование Основные понятия и определения Программы и программное обеспечение
- •Системное программирование
- •Этапы подготовки программы
- •Системное программирование
- •Лекция 1
- •1. Язык Си: Общая характеристика, историческая справкаи основные достоинства
- •2. Подготовка к выполнению и выполнение программ
- •3. Элементы языка с
- •Лекция 2
- •1. Понятие типа данных. Переменные и константы. Операция присваивания
- •2.Типы данных в языке си. Описание данных в программе
- •3. Константы в языке Си
- •4. Арифметические операции и арифметические выражения
- •5. Операции отношения, логические операции и логические выражения
- •6. Автоматическое преобразрвание типов и операция приведения
- •7. Простейшие операторы языка си. Составной оператор
- •Лекция 3
- •3. Инициализация переменных и массивов
- •4. Управляющие конструкции языка си
- •Лекция 4
- •1. Адреса и указатели
- •2. Отождествление массивов и указателей.Адресная арифметика
- •3. Указатели на массивы. Массивы указателей и многомерные массивы
- •4. Динамическое выделение памяти под массивы
- •5. Инициализация указателей
- •Лекция 5
- •1. Функции в языке си. Формальные и фактические параметры. Механизм передачи параметров. Возвращаемые значения
- •2. Использование указателей в качестве аргументов функций
- •3. Предварительное описание функций
- •4. Аргументы командной строки
- •Лекция 6
- •1. Ввод и вывод в языке си: Общие концепции
- •2. Файлы данных и каталоги. Внутренняя организация и типы файлов
- •3. Стандартные функции для работы с файлами и каталогами
- •4. Внешние устройства как специальные файлы. Организация обмена со стандартными внешними устройствами
- •5. Операции ввода/вывода через порты микропроцессоров intel 8086/80286
- •Лекция 7
- •1. Общая структура программы на языке си. Время существования и видимость переменных. Блоки
- •2. Классы памяти
- •3. Рекурсивные вызовы функций. Реализация рекурсивных алгоритмов
- •4. Препроцессор языка Си
- •5. Модели памяти, поддерживаемые компилятором ibm c/2
- •Лекция 8
- •1. Структуры в языке си: основные понятия
- •2. Массивы структур
- •3. Указатели на структуры
- •4. Вложение структур
- •5. Структуры и функции
- •6. Объединения
- •7. Перечисления
- •8. Определение и использование новых типов данных
- •9. Классы имен
Лекция 6
Ввод и вывод в языке Си: общие концепции. Файлы данных и каталоги файлов. Внутренняя организация и типы файлов. Стандартные функции для работы с файлами и каталогами. Внешние устройства как специальные файлы. Организация обмена со стандартными внешними устройствами. Операции ввода/вывода через порты микропроцессоров Intel 8086/80286.
1. Ввод и вывод в языке си: Общие концепции
При разработке и эксплуатации программного обеспечения операции ввода/вывода играют столь же большую роль, как, например, инструкции управления или способы описания оперативных структур данных. Дело в том, что, с одной стороны, всякая программа, лишенная возможности общения с "внешним миром", оказывается либо недостаточно гибкой по отношению к наборам обрабатываемых ею данных, либо абсолютно бесполезной по причине отсутствия возможности сообщить пользователю о результатах своей работы. С другой стороны, во многих прикладных задачах объемы перерабатываемой информации столь велики, что не может быть и речи о ее одновременном размещении в оперативной памяти ЭВМ и возникает прямая необходимость в непрерывной "подкачке" данных в процессе работы программы. И, наконец, использование одних лишь оперативных структур данных не обеспечивает сохранения информации после выключения питания ЭВМ, ликвидируя тем самым возможность ведения долгосрочных архивов и создания баз знаний. В современных вычислительных системах внешние устройства, с которыми приходится поддерживать обмен, по выполняемым функциям делятся на две категории. Это, во-первых, всевозможные устройства для связи с оператором ЭВМ, как то интерактивные терминалы и телетайпы, принтеры, графопостроители, фотонаборные устройства и т. д. Во-вторых, внешними по отношению к центральной ЭВМ являются накопители информации на магнитных носителях, каковыми чаще всего выступают магнитные диски. Две эти категории периферийных устройств принципиально отличаются тем, что в первом случае передача данных на устройство осуществляется последовательным образом (потоком) и носит, как правило, однонаправленный характер. Во втором же случае обычно имеет место двусторонняя передача информации и достаточно сложная логическая организация данных на магнитном носителе, поддерживаемая специальными компонентами операционной системы и прикладными программами. Одной из основных особенностей языка Си по отношению к большинству других языков программирования высокого уровня является полное отсутствие в нем предопределенных операторов ввода/вывода. Это, однако, ни в коей мере не ограничивает его возможностей по организации больших наборов данных и управлению периферийным оборудованием, ибо все необходимые для этого средства предоставляются функциями из стандартных библиотек языка Си. Более того, подобное отношение к операциям ввода/вывода открывает путь к созданию высоко эффективного и мобильного программного обеспечения, максимально использующего возможности операционной системы по поддержанию внешнего обмена.