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