PROCPS\_MISC(3) Library Functions Manual 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)](/man/os/procps/sd_get_sessions.3) і є результатом підрахунку сеансів користувача, клас user-early і user-incomplete або нумерації за допомогою [**getutent**(3)](/man/os/procps/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)](/man/os/procps/signal.7). Якщо довжина списку сигналів перевищить *size* байтів, рядок буде обрізано і завершено '+'. Відповідальність за забезпечення правильного розміщення *str* у принаймні *size* байтів несе програма виклику.

**procps\_capmask\_names**() заповнює *str* зручним для читання текстовим рядком довжиною до *size* байтів набору можливостей у шістнадцятковій масці можливостей *sigmask*, див. [**capabilities**(7)](/man/os/procps/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)](/man/os/procps/procps.3), [**procps\_pids**(3)](/man/os/procps/procps_pids.3), [**getutent**(3)](/man/os/procps/getutent.3), [**sd\_get\_sessions**(3)](/man/os/procps/sd_get_sessions.3), [**proc**(5)](/man/os/procps/proc.5), [**capabilities**(7)](/man/os/procps/capabilities.7), [**signal**(7)](/man/os/procps/signal.7).

6 липня 2024 року procps-ng

---

Document: procps_misc(3) from procps 4.0.7-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/procps-ng/Production/procps-ng-4.0.7.tar.xz
