Описание функций C (Си) / C++ - lseek

Описание функций C (Си) / C++ - lseek



#include требуется только для объявления
функций.
long lseek (stream, offset, origin);
int handle; handle, ссылающийся на открытый
файл
long offset; число байтов из origin.
int оrigin; начальная позиция.

Описание.

Функция lseek передвигает указатель на файл (если он есть),
связанный с handle, на новое место расположения, которое является
байтами offset из origin.
Следующая операция в файле выполняется на новом месте рас-
положения.
Аргумент origin может быть одной из следующих констант, оп-
ределенных в .

ORIGIN ОПРЕДЕЛЕНИЕ

SEEK-SET начало файла.

SEEK-CUR текущая позиция указателя на
файл.

SEEK-END конец файла.

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

Возвращаемое значение.

Функция lseek возвращает разветвление origin в байтах, оп-
ределенное как значение от новой позиции до начала файла. Возвра-
щаемое значение -1 указывает на ошибку; errno устанавливается в
одно из следующих значений:

ВЕЛИЧИНА ЕЕ СМЫСЛОВОЕ ЗНАЧЕНИЕ

EBADF Неверный handle-р файла.

ENIVAL Неверное значение для origin или
позиция, определенная при помощи
offset, находится перед началом
файла.

Для устройств, не приспособленных для поиска (seek), (таких

как терминал и печать), возвращаемое значение неопределено.
См. также fseek, tell.

Пример:

#include
#include
#include
int fh;
long position;
fh = open("data", O_RDONLY);
.
.
.
/* 0 - разветвление от начала */
position = lseek (fh, 0L, SEEK_SET);
if (position == -1L)
perror("lseek to beginning failed");
.
.
.
/* находит текущую позицию */
position = lseek (fh, 0L, SEEK_CUR);
if (position == -1L)
perror("lseek to current position failed");
.
.
.
/* выполняет до конца файла */
if (position == -1L)
perror("lseek to end failed");.






Опубликовал admin
11 Мар, Вторник 2008г.



Программирование для чайников.