Инициализировать стандартные таблицы функций POSIX-уровня
#include <sys/iofunc.h>void iofunc_func_init( unsigned nconnect,resmgr_connect_funcs_t *connect,unsigned nio,resmgr_io_funcs_t *io );
_RESMGR_CONNECT_NFUNCS
._RESMGR_IO_NFUNCS
.libc
Функция iofunc_func_init() инициализирует переданное соединение и структуру io функциями POSIX-слоя по умолчанию. Для информации о функциях по умолчанию см. resmgr_connect_funcs_t и resmgr_io_funcs_t.
Аргументы nconnect и nio определяют количество записей, которые функция должна заполнить. Это сделано для поддержки совместимости с последующими версиями.
Заполнить соединение и таблицу функций ввода/вывода функциями POSIX-слоя по умолчанию:
#include <sys/iofunc.h>static resmgr_connect_funcs_t my_connect_functions;static resmgr_io_funcs_t my_io_functions;int main( int argc, char **argv ){...iofunc_func_init( _RESMGR_CONNECT_NFUNCS, &my_connect_functions,_RESMGR_IO_NFUNCS, &my_io_functions );/** В этом месте значения по умолчанию уже загружены.* Можно переписать некоторые значения на пользовательские:*/my_io_functions.io_read = my_io_read;...}
Пример выше инициализирует структуры соединения и функций ввода/вывода (my_connect_functions и my_io_functions) функциями POSIX-слоя по умолчанию. Если не переопределить ни одну из функций, менеджер ресурсов будет вести себя как /dev/null
— любые записанные данные будут отклонены, а попытка прочесть данные вернет EOF
.
Поскольку в большинстве случаев это нежелательно, пользователь предоставляет свои реализации некоторых функций, таких как чтение, запись и управление устройством. В приведенном выше примере явно указывается обработчик для чтения из устройства с помощью функции my_io_read().
ЗОСРВ «Нейтрино»
iofunc_attr_init(), resmgr_attach(), resmgr_connect_funcs_t, resmgr_io_funcs_t
Предыдущий раздел: Описание API системной библиотеки