iofunc_func_init()

Инициализировать стандартные таблицы функций POSIX-уровня

Прототип:

#include <sys/iofunc.h>
void iofunc_func_init( unsigned nconnect,
resmgr_connect_funcs_t *connect,
unsigned nio,
resmgr_io_funcs_t *io );

Аргументы:

nconnect
Количество записей в таблице connect, которые необходимо заполнить. Обычно в качестве аргумента передаётся _RESMGR_CONNECT_NFUNCS.
connect
Указатель на структуру resmgr_connect_funcs_t, которую необходимо заполнить функциями подключения по умолчанию.
nio
Количество записей в таблице io, которую необходимо заполнить. Обычно в качестве аргумента передаётся _RESMGR_IO_NFUNCS.
io
Указатель на структуру resmgr_io_funcs_t, которую необходимо заполнить функциями ввода/вывода по умолчанию.

Библиотека:

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 системной библиотеки