Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_K_Magistrature.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
508.41 Кб
Скачать

4. Среда вводв/вывода в современных языках программирования. Текстовые и двоичные файлы. Чтение, запись и позиционирование файлов.

Программы C реализуют ввод/вывода с помощью потоков. Система ввода/вывода обеспечивает для программиста стандартные и не зависящие от физического устройства средства представления информации и управления потоками ввода/вывода. Действия по организации ввода/вывода обеспечиваются стандартными наборами, как правило, одноименных функций ввода/вывода со стандартным.

Потоки: байтовые, символьные, двоичные

Большинство устройств, предназначенных для выполнения операций ввода/вывода, являются байт-ориентированными. Этим и объясняется тот факт, что на самом низком уровне все операции ввода/вывода манипулируют с байтами в рамках байтовых потоков.

С другой стороны, значительный объем работ, для которых, собственно, и используется вычислительная техника, предполагает работу с символами, а не с байтами (заполнение экранной формы, вывод информации в наглядном и легко читаемом виде, текстовые редакторы).

Символьно-ориентированные потоки, предназначенные для манипулирования с символами, а не с байтами, являются потоками ввода/вывода более высокого уровня

Консольный ввод/вывод. При обсуждении процедур ввода/вывода следует иметь в виду одно важное обстоятельство. Независимо от типа выводимого значения, в конечном результате выводится СИМВОЛЬНОЕ ПРЕДСТАВЛЕНИЕ значения.

Файловый ввод-вывод ничем не отличается от консольного. За единственным исключением – если данные читаются из файла, то в любой момент можно вернуться к началу файла и считать все заново.

Те́кстовый файл — файл, содержащий текстовые данные, как правило организованные в виде строк. Текстовый файл, как и прочие файлы, хранится в файловой системе.

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary) цифр.

В узком смысле слова двоичные файлы противопоставляются текстовым файлам. При этом с точки зрения технической реализации на уровне аппаратуры, текстовые файлы являются частным случаем двоичных файлов, и, таким образом, в широком значении слова под определение «двоичный файл» подходит любой файл.

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

В стандартной библиотеке Си существует более удобная функция perror, которая печатает системное сообщение о последней ошибке вместо ее кода

При выполнении файловых операций исполняющая система поддерживает указатель текущей позиции в файле. При чтении или записи n байтов указатель текущей позиции увеличивается на n; таким образом, чтение или запись происходят последовательно. Библиотека ввода-вывода Си предоставляет, однако, возможность нарушать эту последовательность путем позиционирования в произвольную точку файла. Для этого используется стандартная функция fseek с прототипом

int fseek(FILE *f, long offset, int whence);

R, W, E

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]