Изменение положения указателя в файле
Данные считываются из файла и записываются в файл последовательно, так как после выполнения каждой операции ввода-вывода смещение указателя в файле сохраняется. Оно хранится в таблице открытых файлов.
В файлах с прямым доступом, например, в обычных и особых файлах, положение указателя в файле можно изменить с помощью функции lseek.
| Функция | Описание |
|---|---|
| lseek | Эта функция позволяет поместить указатель в заданную позицию файла.
Позиция указателя в файле определяется переменной Смещение. Значение
Смещения можно задавать относительно
следующих позиций в файле (такая позиция указывается в переменной
Откуда):
|
Функция lseek возвращает текущее
положение указателя в файле. Например:
cur_off= lseek(fd, 0, SEEK_CUR);Результат выполнения lseek сохраняется в таблице открытых файлов. Все последующие операции чтения и записи будут выполняться с учетом нового положения указателя в файле.
Прим.: Для каналов и сокетов положение указателя изменять нельзя.
| Функция | Описание |
|---|---|
| fclear | Эта функция создает в файле пустое пространство. Она обнуляет область файла, размер которой задается переменной Число байт, начиная с текущей позиции указателя в файле. Если при открытии файла был установлен флаг O_DEFER, то функция fclear будет недоступна. |