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
присваивается код ошибки