PROCPS_MISC(3)

НАЗВА
procps_misc — програмний інтерфейс до різноманітних даних у файловій системі /proc

КОРОТКИЙ ОПИС
#include <libproc2/misc.h>

Подробиці щодо платформи

    long         procps_cpu_count (void);
    long         procps_hertz_get (void);
    unsigned int procps_pid_length (void);
    int          procps_linux_version (void);

Подробиці щодо середовища виконання

    int   procps_container_uptime (double *uptime_secs);
    int   procps_loadavg (double *av1, double *av5, double *av15);
    int   procps_uptime (double *uptime_secs, double *idle_secs);
    int   procps_uptime_snprint ( char *restrict str, size_t size, double uptime_secs, const int pretty);
    char *procps_uptime_sprint (void);
    char *procps_uptime_sprint_short (void);
    int   procps_users (void);

Подробиці щодо простору назв

    int         procps_ns_get_id (const char *name);
    const char *procps_ns_get_name (int id);
    int         procps_ns_read_pid (int pid, struct procps_ns *nsp);

Визначення назв масок

    int procps_sigmask_names (char *const str, size_t size , const char *sigmask);
    int procps_capmask_names (char *const str, size_t size,  const char *capmask);

Компонувати з -lproc2.

ОПИС
procps_cpu_count() повертає кількість робочих процесорів як sysconf(_SC_NPROCESSORS_ONLY) або типове значення 1.

procps_hertz_get() повертає кількість тактів годинника на секунду як sysconf(_SC_CLK_TCK) або типове значення 100. Якщо поділити такти на це значення, буде отримано секунди.

procps_pid_length() повертає максимальну довжину рядка для PID у системі. Наприклад, якщо найбільше можливе значення PID — 123, довжиною буде 3. Якщо файл /proc/sys/kernel/pid_max виявиться недоступним до читання, типовим значенням буде 5.

procps_linux_version() повертає версію поточної системи Linux у форматі закодованого цілого числа. У системах, відмінних від Linux, із імітацією файлової системи proc ця функція повертає версію емуляції Linux. Версія складається з трьох додатних цілих чисел, які відповідають основній, проміжній частинам і частині модифікації. Передбачено вказані нижче макроси для кодування заданої версії Linux або окремого використання компонентів поточної версії.

    LINUX_VERSION( major , minor , patch )

    LINUX_VERSION_MAJOR( ver )

    LINUX_VERSION_MINOR( ver )

    LINUX_VERSION_PATCH( ver )

procps_loadavg() отримує дані щодо середнього навантаження на систему і записує середні значення за 1, 5 і 15 хвилин у місця, які вказано будь-яким вказівником, який не є порожнім (NULL).

procps_container_uptime() повертає час роботи контейнера у місце, яке задано вказівником, якщо його значенням не є NULL. У поточній версії цей час визначається часом існування PID 1, який могло бути задано такою командою:

    $ ps -o etimes 1
    ELAPSED
    12345

У контейнері немає поняття бездіяльності, тому у procps_container_uptime() немає цього параметра.

procps_uptime() повертає час роботи і/або бездіяльності у секундах у місця, які вказано будь-яким вказівником, який не є порожнім (NULL). Використання форматування sprint повертає рядок у зручному для читання форматі в одній із двох форм.

    ГГ:ХХ:СС up ГГ:ХХ, # users, load average: 1, 5, 15 MM averages

    up ГГ, ХХ

procps_uptime_snprint() використовує заданий буфер str розміру size для заповнення рядка часу виконання замість статично розміщеного буфера. Функції потрібне значення uptime_secs, яке може бути отримане з procps_uptime() або procps_container_uptime(), а прапорець pretty визначає, будуть виведені дані стандартними чи удосконаленим/скороченими.

procps_users() повертає кількість користувачів у системі. Це значення походить від sd_get_sessions(3) і є результатом підрахунку сеансів користувача, клас user-early і user-incomplete або нумерації за допомогою getutent(3).

procps_ns_get_id() повертає цілочисельний ідентифікатор (enum namespace_type) простору назв для заданого простору назв name.

procps_ns_get_name() повертає назву простора назв для заданого id (enum namespace_type).

procps_ns_read_pid() повертає inode-и для просторів назв із заданим процесом у структурі procps_ns на яку вказує nsp. Ці inode-и буде виведено у порядку, який визначається переліком namespace_type.

    enum namespace_type {
        PROCPS_NS_CGROUP,
        PROCPS_NS_IPC,
        PROCPS_NS_MNT,
        PROCPS_NS_NET,
        PROCPS_NS_PID,
        PROCPS_NS_TIME,
        PROCPS_NS_USER,
        PROCPS_NS_UTS
    };

procps_sigmask_names() заповнює str зручним для читання текстовим рядком довжиною до size байтів набору сигналів у шістнадцятковій масці сигналів sigmask, див. signal(7). Якщо довжина списку сигналів перевищить size байтів, рядок буде обрізано і завершено '+'. Відповідальність за забезпечення правильного розміщення str у принаймні size байтів несе програма виклику.

procps_capmask_names() заповнює str зручним для читання текстовим рядком довжиною до size байтів набору можливостей у шістнадцятковій масці можливостей sigmask, див. capabilities(7). Якщо довжина списку можливостей перевищить size байтів, рядок буде обрізано і завершено '+'. Відповідальність за забезпечення правильного розміщення str у принаймні size байтів несе програма виклику.

Для процесу, який немає можливостей або усі можливості, рядком буде "-" і "full", відповідно.

ПОВЕРНУТЕ ЗНАЧЕННЯ

  Функції, які повертають «int» або «long»
На помилку вказуватиме від'ємне число, яке є завжди оберненим до якогось відомого значення з errno.h.

  Функції, які повертають ‘address’
На помилку вказуватиме повернутий NUL-вказівник із повідомлення про причину у формальному значенні errno.

ФАЙЛИ

/proc/loadavg
    Необроблені значення для середнього навантаження.

/proc/sys/kernel/osrelease
    Містить версію випуску ядра Linux або файлової системи proc.

/proc/sys/kernel/pid_max
    Містить значення, на якому відбувається зациклювання PID, на одиницю більше за максимальне значення PID.

/proc/uptime
    Необроблені значення для часу роботи та часу бездіяльності системи.

/proc/PID/ns
    містить набір просторів назв для певного PID.

ТАКОЖ ПЕРЕГЛЯНЬТЕ
procps(3), procps_pids(3), getutent(3), sd_get_sessions(3), proc(5), capabilities(7), signal(7).