Прямой (произвольный) доступ к файлу

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

Как было сказано в 1.2, место, откуда выполняется чтение информации из файла, или куда происходит запись данных, определяется положением указателя чтения-записи файла. Его положение — это порядковый номер байта, который будет считан первым или который первым получит новое значение. Заметим, что здесь термин “указатель” никак не связан с типом переменной, значением которой является адрес. Начальная позиция этого “невидимого курсора” устанавливается при открытии потока и указывает на начало потока при создании и чтении файла (режимы “r” и “w”) или на его конец при добавлении данных (режим “a”).

При операции чтения или записи указатель автоматически сдвигается “вперёд”, а, точнее, к концу файла, на то число байтов, которое было прочитано или записано. Если при операции чтения был достигнут конец файла, возникнет ситуация EOF. Если конец файла был достигнут при операции записи, то конец файла автоматически перемещается на то число байтов, которое было записано за прежним концом файла.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: