Запросить базу данных ресурсов
#include <sys/rsrcdbmgr.h>#include <sys/rsrcdbmsg.h>int rsrcdbmgr_query_name( rsrc_alloc_t *list,int listcnt,int start,pid_t pid,char *name,unsigned type );
NULL
, или массив структур rsrc_alloc_t, котоыре функция может заполнять информацией о найденных ресурсах. Для получения дополнительной информации см. докуменатцию по rsrcdbmgr_create().0
или один из следующих: libc
Функция rsrcdbmgr_query_name() запрашивает в базе данных количество listcnt используемых ресурсов типа type, начиная с индекса start. Если выполнить запрос с list, отличным от NULL
, тогда функция сохраняет максимум найденных ресурсов listcnt в массиве.
Если list имеет значение NULL
или listcnt равен 0
, функция возвращает количество ресурсов типа type в базе данных.
Если list не равен NULL
, то функция возвращает количество ресурсов типа type, доступных в системе.
В случае возникновения ошибки, функция возвращает -1
и устанавливает errno.
Перечислить все блоки ресурсов памяти, доступные в системе:
rsrc_alloc_t list[20];int size, count = 0, start = 0;while ( 1 ){count = rsrcdbmgr_query_name( list, 20, start, -1, "memory", 0 );if ( count == -1 )break;/* In case more than 20 blocks were returned. */size = min( count-start, 20 );printf( "Retrieved %d of a possible %d resource blocks", size, count );for ( count = 0; count < size; count++ ){printf( "RSRC[%d] Start %d End %d \n", start + count,list[count].start, list[count].end );}start += size; /* Loop again, in case there are more than 20 blocks. */}
ЗОСРВ «Нейтрино»
rsrc_alloc_t, rsrcdbmgr_attach()
Предыдущий раздел: Описание API системной библиотеки