Глава 20. Файловый ввод/вывод

Понятие файла
Файловая система
Файловая иерархия и директории
Основное и полное имя файла
Абсолютные и относительные имена файлов
Текущая директория
Операции ввода-вывода
Открытие и закрытие файла
Чтение
Запись
Форматированный вывод
Стандартные дескрипторы
Переадресация ввода/вывода
Кодовые страницы
Общие сведения
Проблемы, связанные с кодовыми страницами
Юникод
Универсальный набор символов UCS
Кодировка UTF-8
Perl и Юникод
Команды как файлы
Несколько примеров
Вывод содержимого файла на экран
Вывод первых и последних строк файла
Удаление повторяющихся строк

Эта глава не закончена

Часто бывает трудно дать прямое определение какому-нибудь понятию. Трудно сказать: «файл — это то-то и то-то». Можно облегчить задачу, описав, что можно делать с файлом. Если некоторый объект предоставляет нам такой набор возможностей. то почему бы его не называть файлом?

А основной набор возможностей, который должен предоставлять файл, такой: чтение и/или запись.

Типичный файл предназначен для хранения данных. Под данными подразумевается конечная последовательность байт. Байт — это агрегат, состоящий из восьми бит. Бит — это элементарная порция информации, и его единственное свойство — находиться в одном из двух состояний. Каждое из этих двух состояний можно интерпретировать так, как нам угодно. Часто эти состояния связывают с двумя взаимоисключающими явлениями, например, «нет/да», «ложь/правда», «выключено/включено». Когда бит находится в первом состоянии, говорят, что он сброшен, когда во втором — установлен.

[Примечание]Примечание

Строго говоря, количество бит в составе байта может отличаться от восьми. В современных компьютерных системах байт действительно состоит из восьми бит, но существовали и другие решения, в которых байт состоял из 6, 7, 9, 32 и 36 битов. Во избежание путаницы мы будем восьмибитные байты называть октетами.

Агрегат из восьми бит, октет, таким образом, может находиться в одном из 2 8 = 256 состояний. Набор из 256 состояний одного октета тоже можно интерпретировать в соответствии с нашими потребностями. Можно считать, что данное состояние октета — набор ответов на восемь простых вопросов. Можно отождествить каждое из состояний октета с целым неотрицательным числом в пределах от 0 до 255. Для этого, например, будем сброшенный бит считать нулём, а установленный — единицей в двоичной записи числа.

Тогда, например, октет 00000000 будет соответствовать числу 0, 11111111 — числу 255, 00011011 — числу 27.

Если поставить в соответствие этим числам буквы (большие и маленькие), цифры, знаки препинания и другие нужные значки, можно считать октет знаком алфавита, состоящего из 256 знаков, а конечную последовательность октетов тогда следует рассматривать как текст над таким алфавитом.

Информатика-54© А. Н. Швец