perfstat_cpu_util 子例程
用途
计算中央处理单元利用率。
库
perfstat 库 (libperfstat.a)
语法
#include <libperfstat.h>int perfstat_cpu_util (cpustats, userbuff, sizeof_userbuff, desired_number)
perfstat_rawdata_t * cpustats;
perfstat_cpu_util_t * userbuff;
int sizeof_userbuff ;
int desired_number ; 描述
perfstat_cpu_util 子例程计算传递到 perfstat_rawdata_t 数据结构的当前值和先前值的 CPU 利用率相关度量。 通过将 perfstat_rawdata_t 数据结构的类型字段称为 UTIL_CPU_TOTAL 或 UTIL_CPU,可以使用同一 API 获取系统利用率值和每个 CPU 利用率值。 UTIL_CPU_TOTAL 和 UTIL_CPU 是可在 perfstat_rawdata_t 数据结构的定义中引用的宏。 如果属性 name 和 userbuff 设置为 NULL ,并且 sizeof_userbuff 参数设置为零,那么将返回当前版本的 perfstat_cpu_util_t 结构的大小。 如果 desired_elements 参数设置为零,那么将返回来自 cpustats 参数的当前元素数。
参数
| 项 | 描述 |
|---|---|
| cpustats | 根据当前值和先前值计算与利用率相关的度量。 cpustats 参数的类型为 perfstat_rawdata_t。 curstat 和 prevstat 属性指向 perfstat_cpu_util_t 数据结构。 注: 要计算分区级别 CPU 利用率,请将 cpustats 参数设置为 UTIL_CPU_TOTAL 。 对于单个 CPU 利用率,请将 cpustats 参数设置为 UTIL_CPU。 如果要计算的利用率仅适用于特定 CPU ,那么还可以在 cpustats 参数中指定单个 CPU 的标识。
|
| 用户缓冲区 | 指定要使用一个或多个 perfstat_cpu_util_t 结构填充的内存区域。 |
| 大小用户缓冲区 | 指定 perfstat_cpu_util_t 结构的大小。 注: 要获取最新版本的 perfstat_cpu_util_t 结构的大小,请将 sizeof_userbuff 参数设置为 0 ,并将 name 和 userbuff 参数设置为 NULL。
|
| 期望数 (desired_number) | 指定要复制到 userbuff 参数的 perfstat_cpu_util_t 结构的数目。 |
返回值
除非使用 perfstat_cpu_util 子例程来检索可用结构数,否则成功完成时将返回已填充的结构数。 如果不成功,则返回值为-1并设置errno全局变量。
错误代码
如果以下情况成立,那么 perfstat_cpu_util 子例程不成功:
| 项 | 描述 |
|---|---|
| EINVAL | 其中一个参数无效。 |
文件
libperfstat.h 文件定义标准宏,数据类型和子例程。