Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Стандартный буфферизированный ввод вывод

Стандартный буферизированный ввод-вывод является надстройкой над базовым уровнем. Подобно базовому уровню, он интерпретирует файл (поток, в терминах данного уровня), как одномерный массив байтов с прямым доступом.

Потоки дают возможность обмениваться с файлом, буферизируя данные в памяти процесса. При чтении из потока происходит считывание блока данных из файла в буфер, а из буфера процессу передается столько байтов, сколько он запросил. Когда при очередном чтении из потока в буфере уже нет требуемых данных, происходит очередное считывание блока данных из файла в буфер. Аналогично при записи в поток передаваемые процессом данные накапливаются в буфере и передаются системе для записи в файл только после того, как буфер заполнится, при вызове специальной функции или при закрытии потока (кстати, при выключении компьтера содержимое буферов операционной системы теряется).

Когда процесс начинает работу, он получает открытыми в обеих системах 3 стандартных потока: стандартный ввод (' stdin ' - в UNIX, ' CON ' - канал 0 в MS-DOS), стандартный вывод (' stdout ' - в UNIX, ' CON ' - канал 1 в MS-DOS), стандартную диагностику (' stderr ' - в UNIX, канал 2 в MS-DOS).MS-DOS предоставляет дополнительно еще 3 стандартных потока - канал связи (' AUX ' - канал 3 ) и стандартное устройство печати (' PRN ' - канал 4 ). Стандартный ввод используется как устройство чтения по умолчанию, стандартный вывод - как устройство записи по умолчанию, стандартная диагностика - для вывода сообщений об ошибках.

В обеих операционных системах средства ввода-вывода буферизированного обмена позволяют передавать символы, символьные строки, форматировать выводимую информацию. Как и на базовом уровне возможна установка позиции в потоке.

UNIX предоставляет широчайшие возможности по форматному вводу-выводу чисел: знаковый и беззнаковый форматы различной точности; преобразование и ввод/вывод в различных системах исчисления, в нормализованном представлении; вывод чисел, адресованных с помощью указателя и т. д. В операционных системах семейства MS-DOS специальных функций ввода/вывода чисел нет.