Общие сведения о вводе-выводе
В Си отсутствуют встроенные операторы (операции) ввода-вывода. Для ввода-вывода используются стандартные библиотеки функций. Рассмотрим одну из стандартных библиотек ввода- вывода, большинство функций которой описаны в заголовочном файле stdio.h. Иногда функции этой библиотеки называют функциями ввода- вывода «высокого» уровня, так как эти функции не учитывают особенности конкретной архитектуры компьютера и используемой операционной системы. Эти функции присутствуют в эквивалентной форме во всех системах, поддерживающих язык Си.
Рассмотрим некоторые понятия, используемые в этой библиотеке. Основное понятие – поток ввода-вывода.
Потоком (stream)называется источник или получатель данных, который можно ассоциировать с диском или другим внешним устройством ввода- вывода. Поток можно рассматривать как последовательность байтов (символов), поток связан с некоторым устройством ввода- вывода (файл, принтер, монитор, клавиатура и др.), с которым ведется обмен. С точки зрения программы поток не зависит от устройства, с которым он связан, т.е. поток не зависит от технической реализации конкретного устройства ввода- вывода.
Классификация потоков ввода- вывода:
По направлению:
- входные;
- выходные;
- двунаправленные.
По использованию буфера в оперативной памяти:
- буферизированные;
- небуферизированные.
Использование буфера ввода- вывода в оперативной памяти позволяет с некоторых случаях существенно увеличить быстродействие программы, которая часто выполняет операции ввода- вывода с внешними устройствами, быстродействие которых существенно меньше (на порядки), чем быстродействие оперативной памяти. При буферизированном вводе выводе данные вначале отправляются в специальный буфер в оперативной памяти, по заполнению буфера они отправляются дальше (в переменные программы или во внешнее устройство вывода). Управляет буфером, как правило, операционная система, но существуют функции в библиотеке для сброса буфера. Схема буферизированного ввода- вывода представлена на рисунке ниже.
Оперативная память |
Программа |
Выводимые данные |
Буфер вывода |
Внешнее устройство вывода |
Оперативная память |
Программа |
Принимающие объекты |
Буфер ввода |
Внешнее устройство ввода |
Дата добавления: 2015-08-14; просмотров: 794;