Unix Man (Справочное руководство)

         

LSEEK(2)


LSEEK(2)

НАЗВАНИЕ


lseek - передвижение указателя чтения/записи

СИНТАКСИС

long lseek (fildes, offset, whence) int fildes; long offset; int whence;

ОПИСАНИЕ


Аргумент fildes - это дескриптор файла, полученный после выполнения системных вызовов creat, open, dup или fcntl. Системный вызов lseek устанавливает указатель текущей позиции файла, ассоциированного с дескриптором fildes, следующим образом, в зависимости от значения аргумента whence:

012

Значение указателя устанавливается равным offset байт.
К текущему значению указателя прибавляется значение offset.
Значением указателя становится размер файла плюс offset.

При успешном завершении системного вызова lseek возвращается новое значение указателя текущей позиции (в байтах) относительно начала файла. Отметим, что если fildes является дескриптором файла на удаленном компьютере и значение offset отрицательно, вызов lseek возвращает значение указателя текущей позиции, даже если оно отрицательно.

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

[EBADF] Аргумент fildes не является корректным дескриптором открытого файла. [PIPE] Дескриптор файла fildes ассоциирован с каналом. [EINVAL и сигнал SIGSYS] Значение аргумента whence не равно 0, 1 или 2. [EINVAL] Дескриптор fildes не является дескриптором файла, расположенного на удаленном компьютере, и результирующее значение указателя текущей позиции отрицательно.

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

СМ. ТАКЖЕ


, , , .

ДИАГНОСТИКА


При успешном завершении результатом служит неотрицательное целое число - указатель текущей позиции в файле; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки



Содержание раздела