C. Тема 3. Раздел 1
.pdfТема 3. Ввод и вывод. Раздел 1. Потоки ввода-вывода
Стандартные потоки ввода-вывода
Переключение стандартных потоков вводавывода
Часть 1
Поток ввода-вывода (поток данных, stream) – абстракция, используемая для единообразного чтения или записи файлов, передачи сообщений по сети с помощью сокетов, общения с различными аппаратными устройствами и прочими источниками/приёмниками данных
В операционной системе Unix и подобных системах, основанных на языке Си
Поток – это источник или приёмник данных, обычно представляемых в виде индивидуальных байтов или символов
Стандартные потоки ввода-вывода – это каналы ввода и вывода данных между компьютерной программной и внешней средой (обычно текстовым терминалом), автоматически предварительно соединённые в момент запуска программы
Каждый стандартный поток ввода-вывода ассоциирован с дескриптором файла
Дескриптор файла (File descriptor) – абстрактный ключ для доступа к файлу
В операционных системах, соответствующих POSIX дескриптор файла – это целое число от
0 до OPEN_MAX
В Windows дескриптор файла – это file handle
Обычно стандартные потоки ввода-вывода характерны для
Операционных систем Unix
Unix-подобных операционных систем
Некоторых программных сред исполнения программ
Типовые потоки ввода-вывода
Стандартный поток ввода
Стандартный поток вывода
Стандартный поток ошибок
Нестандартные потоки ввода-вывода и их дескрипторы используются для общения с нестандартными устройствами
После установки драйвера устройства в системе появляется новый дескриптор файла, зная который можно обмениваться с этим устройством информацией
Это характерно для Unix и Windows
Дескриптор потока: 0
Название потока: stdin
Символическая константа в POSIX: STDIN_FILENO
Типовое назначение потока: чтение с устройства текстового ввода интерфейса пользователя (клавиатуры)
Дескриптор потока: 1
Название потока: stdout
Символическая константа в POSIX: STDOUT_FILENO
Типовое назначение потока: вывод данных, обычно текстовых, на устройство отображения информации интерфейса пользователя (монитор)
Дескриптор потока: 2
Название потока: stderr
Символическая константа в POSIX: STDERR_FILENO
Типовое назначение потока: вывод диагностических и отладочных сообщений в текстовом виде
Обычно информация направляется на то же устройство, что и stdout
Дескриптор потока: 3
Название потока: stdaux
Символическая константа в POSIX: отсутствует
Типовое назначение потока: ввод-вывод данных, обычно массивов байтов, на устройство, подключённое к последовательному порту COM1
Данный поток вывода использовался только в
DOS