perfstat_process 子例程

用途

检索进程利用率度量值。

perfstat 库 (libperfstat.a)

语法

#include <libperfstat.h>

int perfstat_process (name, userbuff, sizeof_userbuff, desired_elements)
perfstat_id_t * name;
perfstat_process_t * userbuff;
int sizeof_userbuff;
int desired_number;

描述

perfstat_process 子例程是每个进程利用率度量的接口。 perfstat_process 子例程检索一个或多个进程统计信息以填充 perfstat_process_t 数据结构。 如果将 nameuserbuff 参数指定为 NULL ,并且将 desired_elements 参数指定为 0 ,那么 perfstat_process 子例程将返回活动进程数 (正在等待的进程除外)。 如果 nameuserbuff 参数设置为 NULL ,并且 sizeof_userbuff 参数设置为 0 ,那么将返回当前版本的 perfstat_process_t 数据结构的大小。

注: 为提高性能,缺省情况下禁用进程作用域磁盘统计信息收集。 要允许收集此数据,请输入以下命令:
schedo -p -o proc_disk_stats=1

参数

表 1. 参数
描述
名称

确定是必须针对所有进程还是特定进程捕获统计信息。 name 参数必须设置为 NULL 才能获取所有进程的统计信息。 对于特定进程,必须提及进程标识。

注: 必须将进程标识作为字符串传递。 例如,要检索进程标识为 5478 的进程的统计信息,必须将 name 参数设置为 5478。
用户缓冲区

指向要使用一个或多个 perfstat_process_t 数据结构填充的内存区域。

大小用户缓冲区

指定 perfstat_process_t 数据结构的大小。

注: 要获取最新版本的 perfstat_process_t 数据结构的大小,请将 sizeof_userbuff 参数设置为 0 ,并将 nameuserbuff 参数设置为 NULL。
所需的元素

指定要复制到 userbuff 参数的 perfstat_process_t 数据结构的数目。

返回值

除非使用 perfstat_process 子例程来检索可用结构数,否则成功完成时将返回填充的结构数。 如果不成功,则返回 -1 ,并设置 errno 全局变量。

错误代码

如果以下错误代码为 true ,那么 perfstat_process 子例程不成功:

表 2。 错误代码
描述
EINVAL 其中一个参数无效。

文件

libperfstat.h 文件定义标准宏,数据类型和子例程。