Обработать сообщение _IO_LSEEK
#include <sys/iofunc.h>int iofunc_lseek( resmgr_context_t *ctp,io_lseek_t *msg,iofunc_ocb_t *ocb,iofunc_attr_t *attr );
libc
Вспомогательная функция iofunc_lseek() реализует POSIX семантику для клиентского вызова lseek(), принимаемого как _IO_LSEEK сообщение менеджером ресурсов.
Функция iofunc_lseek() обрабатывает три разных случая: SEEK_SET, SEEK_CUR и SEEK_END, обновляя поле ocb->offset новой позицией в файле.
Обратите внимание, что если в структуре монтирования не установлен флаг IOFUNC_MOUNT_32BIT, iofunc_lseek() обрабатывает 64-разрядные смещения. Если флаг установлен (это означает, что устройство поддерживает только 32-разрядные смещения), то полученное смещение обрабатывается как 32-разрядное и если оно превышает 32 бита, то обрезается до LONG_MAX. Кроме того, эта функция правильно обрабатывает комбинированные сообщения, упрощая работу, необходимую для поддержки lseek.
_IO_LSEEK не был одним из SEEK_SET, SEEK_CUR или SEEK_END, или полученная после смещения позиция была отрицательной (переполнение).off_t.ЗОСРВ «Нейтрино»
iofunc_attr_t, io_lseek_t, iofunc_lseek_default(), iofunc_ocb_t, lseek(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки