LSEEK(2) LSEEK(2)
НАЗВАНИЕ
lseek - передвижение указателя чтения/записи
СИНТАКСИС
long lseek (fildes, offset, whence)
int fildes;
long offset;
int whence;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный пос-
ле выполнения системных вызовов creat, open, dup или
fcntl. Системный вызов lseek устанавливает указатель
текущей позиции файла, ассоциированного с дескриптором
fildes, следующим образом, в зависимости от значения
аргумента whence:
0 Значение указателя устанавливается равным offset
байт.
1 К текущему значению указателя прибавляется значе-
ние offset.
2 Значением указателя становится размер файла плюс
offset.
При успешном завершении системного вызова lseek возвра-
щается новое значение указателя текущей позиции (в бай-
тах) относительно начала файла. Отметим, что если
fildes является дескриптором файла на удаленном компью-
тере и значение offset отрицательно, вызов lseek воз-
вращает значение указателя текущей позиции, даже если
оно отрицательно.
Системный вызов lseek завершается неудачей и указатель
текущей позиции не изменяется, если выполнено хотя бы
одно из следующих условий:
[EBADF] Аргумент fildes не является корректным
дескриптором открытого файла.
[PIPE] Дескриптор файла fildes ассоциирован с ка-
налом.
[EINVAL и сигнал SIGSYS]
Значение аргумента whence не равно 0, 1 или
2.
[EINVAL] Дескриптор fildes не является дескриптором
файла, расположенного на удаленном компь-
ютере, и результирующее значение указателя
текущей позиции отрицательно.
Некоторые устройства не поддерживают передвижение ука-
зателя текущей позиции. Для файлов, ассоциированных с
такими устройствами, значение указателя не определено.
СМ. ТАКЖЕ
creat(2), dup(2), fcntl(2), open(2).
ДИАГНОСТИКА
При успешном завершении результатом служит неотрица-
тельное целое число - указатель текущей позиции в фай-
ле; в случае ошибки возвращается -1, а переменной errno
присваивается код ошибки.
|