Освободить ресурсы блока открытого контекста (OCB, Open Control Block)
#include <sys/iofunc.h>int iofunc_ocb_detach( resmgr_context_t *ctp,iofunc_ocb_t *ocb );
libc
Функция iofunc_ocb_detach() освобождает все ресурсы, выделенные для ocb, например, смапированную память.
![]() | Эта функция не освобождает память, связанную с самим OCB. |
Функция iofunc_ocb_detach() также обновляет структуру времени, вызывая iofunc_time_update(), и уменьшает счетчики чтения, записи, блокировки и использования в соответствии с режимом, который использовался при открытии ресурса (из ocb->ioflag).
Счетчики увеличиваются в iofunc_ocb_attach() и отражают количество OCB, использующих управляемый ресурс соответствующим образом (например: ocb->attr->rcount ведёт подсчёт количества OCB, использующих ресурс, указанный в attr, для чтения).
Если используется iofunc_mmap() или iofunc_mmap_default(), необходимо вызвать iofunc_ocb_detach() для очистки. Эта функция вызывается из iofunc_close_ocb().
Побитовое ИЛИ флагов, описывающих состояние управляемого ресурса:
ЗОСРВ «Нейтрино»
iofunc_close_ocb(), iofunc_close_ocb_default(), iofunc_mmap(), iofunc_mmap_default(), iofunc_ocb_attach(), iofunc_ocb_t, iofunc_time_update(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки