The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

lseek (2)
  • lseek (2) ( Solaris man: Системные вызовы )
  • lseek (2) ( FreeBSD man: Системные вызовы )
  • >> lseek (2) ( Русские man: Системные вызовы )
  • lseek (2) ( Linux man: Системные вызовы )
  • lseek (3) ( POSIX man: Библиотечные вызовы )
  •  

    ИМЯ

    lseek - установить смещение для позиционирования операций чтения/записи  

    ОБЗОР

    #include <sys/types.h>
    #include <unistd.h>

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

    ОПИСАНИЕ

    Функция lseek устанавливает смещение для файлового дескриптора fildes в значение аргумента offset в соответствии с директивой whence которая может принимать одно из следующих значений:
    SEEK_SET
    Смещение устанавливается в offset байт (от начала файла -- прим. пер.).
    SEEK_CUR
    Смещение устанавливается как текущее смещение плюс offset байт.
    SEEK_END
    Смещение устанавливается как размер файла плюс offset байт.

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

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    При успешном выполнеии lseek возвращает получившееся в результате смещение в батах от начала файла. В противном случае, возвращается значение (off_t)-1 и errno показывает ошибку.  

    ОШИБКИ

    EBADF
    fildes не является дескриптором открытого файла.
    ESPIPE
    fildes ассоциирован с каналом, сокетом или FIFO.
    EINVAL
    whence не является одним из значений SEEK_SET, SEEK_CUR, SEEK_END или смещение в файле, которое получилось в результате является отрицательным.
    EOVERFLOW
    Получившееся в результате смещение не может быть представлено типом off_t.
     

    СООТВЕТСТВИЕ СТАНДАРТАМ

    SVr4, POSIX, BSD 4.3  

    ОГРАНИЧЕНИЯ

    Некоторые устройства несовместимы с позиционированием, а POSIX не определяет какие устройства должны его поддерживать.

    Специальные ограничения Linux: при использовании lseek на терминальных устройствах tty возвращается ESPIPE.  

    ЗАМЕЧАНИЯ

    Использование в этом документе слова whence является некорректным для английского языка, но в силу исторических причин использование этого слова продолжается.

    Если вы будете конвертировать старый код, подставляйте вместо значений whence следующие макросы:

    oldnew
    0SEEK_SET
    1SEEK_CUR
    2SEEK_END
    L_SETSEEK_SET
    L_INCRSEEK_CUR
    L_XTNDSEEK_END

    SVR1-3 возвращает long вместо off_t, BSD возвращает int.

    Заметим, что файловые дескрипторы, созданные через dup(2) или fork(2) разделяют указатель текущей позиции в файле, так что позиционирование таких файлов может быть выполнено на тех же условиях.  

    СМОТРИТЕ ТАКЖЕ

    dup(2), fork(2), open(2), fseek(3)  

    ПЕРЕВОД

    Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003


     

    Index

    ИМЯ
    ОБЗОР
    ОПИСАНИЕ
    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
    ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    ОГРАНИЧЕНИЯ
    ЗАМЕЧАНИЯ
    СМОТРИТЕ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 



      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor