Изменение положения указателя в файле

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

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

Функция Описание
lseek Эта функция позволяет поместить указатель в заданную позицию файла. Позиция указателя в файле определяется переменной Смещение. Значение Смещения можно задавать относительно следующих позиций в файле (такая позиция указывается в переменной Откуда):
Абсолютное смещение
Смещение относительно начала файла
Относительное смещение
Смещение относительно прежнего положения указателя
Конец файла
Смещение относительно конца файла
Функция lseek возвращает текущее положение указателя в файле. Например:

cur_off= lseek(fd, 0, SEEK_CUR);

Результат выполнения lseek сохраняется в таблице открытых файлов. Все последующие операции чтения и записи будут выполняться с учетом нового положения указателя в файле.

Прим.: Для каналов и сокетов положение указателя изменять нельзя.
Функция Описание
fclear Эта функция создает в файле пустое пространство. Она обнуляет область файла, размер которой задается переменной Число байт, начиная с текущей позиции указателя в файле. Если при открытии файла был установлен флаг O_DEFER, то функция fclear будет недоступна.