Наведені вище функції і структури є загальними, але частиною будь-якого ідентифікатора може також бути специфічний запис іменований_інтерфейс. Наприклад, «procps_new» може бути насправді «procps_meminfo_new», а «info» може бути насправді «diskstats_info» тощо.
Той самий іменований_інтерфейс буде використано у кожній з назв файлів заголовків, назви яких формуються додаванням суфікса «.h».
Компонувати з -lproc2.
Заданням масиву значень «item» ці структури можна упорядкувати як «стек» із потенційним отримання багатьох результатів одним викликом функції. Таким чином, «стек» можна розглядати як запис змінної довжини, вміст якого та порядок записів у якому визначаються лише користувачем.
Частиною кожного інтерфейсу є два унікальних лічильники. Для зберігання їхніх значень передбачено записи «noop» та «extra». Їхні значення ніколи не встановлюються бібліотекою, але результат «extra» буде занулено на початку кожної взаємодії із бібліотекою.
Базовим документом при розробці користувацької програми буде файл заголовків іменованого інтерфейсу. Там ви знайдете усі доступні записи (item), тип, який вони повертають (назву члена структури «result») і джерело для таких значень. Також там наведено документацію щодо додаткових лічильників та структур.
1. procps_new() 2. procps_get(), procps_select() або procps_reap() 3. procps_unref()
Функцію get призначено для отримання структури «result» для окремого «item». Крім того, можна скористатися макросом GET, якщо потрібне лише значення, яке повертає функція.
Функція select може отримувати декілька структур «result» в одному значенні «stack».
Для непередбачуваних результатів для змінних інтерфейси diskstats, slabinfo і stat експортують функцію reap. Її використовують для отримання декількох «стеків», кожен з яких містить декілька структур «result». Крім того, користувач може наказати упорядкувати (sort) ці результати.
Щоб скористатися будь-яким «stack» і отримати доступ до окремих структур «result», потрібен relative_enum, як це показано у макросі VAL, який визначено у файлі заголовка. ТАкі значення можна запрограмувати як: значення від 0 до numitems-1. Втім, цю потребу типово можна задовольнити створенням ваших власних лічильників, які відповідають порядку у масиві «items».
Для функцій new і unref має бути надано адресу вказівник структури info. Із new її має бути ініціалізовано значенням NULL. Із unref її буде скинуто до NULL, якщо контрольний відлік дійде до нуля.
У випадку інтерфейсу diskstats параметр name у функціях get і select вказує на диск або назву розділу
Для інтерфейсу stat параметр what функції reap вказує на те, чи слід збирати дані лише для процесорів або процесорів і вузлів NUMA.
Якщо використано функцію sort, зазвичай, буде повернуто параметри stacks і numstacked у структурі «reaped».
На успіх вказує нульовий стан повернення. Втім, функції ref і unref повертають поточний контрольний відлік структури info.
На успіх вказує повернення вказівника на іменовану структуру.
Цю можливість можна активувати за допомогою будь-якого з вказаних нижче методів, а усі розбіжності буде записано до stderr.
Використання цієї можливості перевірки призводить до суттєвих обчислювальних витрат. Через це, важливо не вмикати її під час остаточного збирання або збирання програми для випуску.