Направления программирования. История создания языка Си. Особенности языка, страница 22

Потоки отличаются друг от друга по тому, как по ним передаются данные. Например, в одном шланге вода может течь непрерывно, а по другому подаваться отдельными “ толчками “. С непрерывно текущей водой можно сравнить двоичные потоки данных, другой случай соответствует текстовым потокам.

Двоичный поток данных передает непрерывную последовательность нулей и единиц. В зависимости от конкретной компьютерной системы. Он может быть интерпретирован как состоящий из машинных слов, являющимися группами бит одинаковой длины. Байт (8 бит) является примером слова определенной длины. В наше время существуют системы, размер слова в которых составляет 16, 32, 64 бита. Как бы эти данные не рассматривал, по сути – это все равно непрерывный поток.

Текстовый поток данных, напротив, интерпретируется весьма специфическим образом. Данные в нем организованы строго, как байты, каждый из которых представляет один текстовый символ. Эти символы далее организуются в строки, которые являются попросту строчками текста. Конец каждой строки помечается специальным символом ASCII – символом перевода строки.  Десятичное значение символа равно 10 (00001010 –двоичное). Стока текста в Си может иметь длину до 250 символов, хотя строки друг от друга реально отделяются не в соответствии с их действительной длинной, а символами перевода строки.

Замечание: Двоичные потоки используются в Си в основном для дисковых файлов.

п.13.2Дисковые файлы.

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

При работе с дисковыми файлами в Си , точно также происходит работа с потоками, как и при считывании данных с клавиатуры или вывода их на экран. Но при необходимости чтение данных из файла или записи в него данных необходимо явное задание потока.

Замечание: Поток задается путем открытия файла . Вы задаете имя файла и указатель, в котором хранится адрес потока. Это обеспечивает связь программы  с файловым потоком. Чтобы осуществить  доступ к данным в файле, необходимо передать этот указатель соответствующей функции для работы с файлами.

п.13.3.Типы дисковых файлов.

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

Текстовый поток состоит из последовательности  ASCII – кодов, представленных в виде строк, каждая строка завершается символом конца строки (ESC – кодом \n ). Конец текстового потока помечается с помощью символа конца файла.

Двоичный поток  представляет собой последовательность битов, данные двоичного потока нельзя интерпретировать в не контекста программы.

Подобно текстовым и двоичным потокам существуют текстовые и двоичные файлы.

Текстовые файлы, иногда называются  ASCII – файлами. Эти файлы содержат данные в обычной текстовой форме. Примером такого файла является исходный текст программы на Си.

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

Замечание: Текстовые файлы полезны для записи данных переданных другими программами, двоичные файлы наиболее подходят для использования в своей собственной программе.

п.13.4.Четыре необходимых шага для работы с файлами.

1.  Открытие файла(организуется доступ к файлу).

2.  Чтение данных из файла(перенос данных с диска в ОП).

3.  Запись файла(перенос данных из ОП на диск).

4.  Закрытие файла.