perfstat_protocol 子例程
用途
检索协议使用情况统计信息。
库
Perfstat 库 (libperfstat.a)
语法
#include <libperfstat.h>
int perfstat_protocol (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_protocol_t *userbuff;
size_t sizeof_struct;
int desired_number;描述
perfstat_protocol 子例程检索协议使用情况统计信息,例如 ICMP , ICMPv6, IP , IPv6, TCP , UDP , RPC , NFS, NFSv2, NFSv3。 要获取一组或多组协议使用情况度量,请将 name 参数设置为需要统计信息的第一个协议的名称,并设置 desired_number 参数。
要从第一个协议开始,请将 name 参数设置为 "" 或 FIRST_PROTOCOL。 userbuff 参数必须指向足够大的内存区域,以包含此函数将复制的所需数目的 perfstat_protocol_t 结构。 返回时, name 参数将设置为下一个协议的名称,或者设置为 "" (如果已复制所有结构)。
要检索协议使用情况度量的可用集合数,请将 name 和 userbuff 参数设置为 NULL ,并将 desired_number 参数设置为 0。 返回的值将是可用集的数目。
此子例程在 工作负载分区 (WPAR) 中不受支持。 它不知道 WPAR。
参数
| 项 | 描述 |
|---|---|
| 名称 | 包含 "ip" , "ipv6" , "icmp" , "icmpv6" , "tcp" , "udp" , "rpc" , "nfs" , "nfsv2" , "nfsv3" , "" 或 FIRST_PROTOCOL。 |
| 用户缓冲区 | 指向要使用一个或多个 perfstat_protocol_t 结构填充的内存区域。 |
| 大小结构 | 指定 perfstat_protocol_t 结构的大小: sizeof(perfstat_protocol_t) |
| 期望数 (desired_number) | 指定要复制到 userbuff的 perfstat_protocol_t 结构的数目。 |
返回值
成功完成后,将返回可填充的结构数。 如果不成功,则返回值为-1并设置errno全局变量。
错误代码
如果满足以下条件,那么 perfstat_protocol 子例程不成功:
| 项 | 描述 |
|---|---|
| EINVAL | 其中一个参数无效。 |
文件
libperfstat.h 文件定义标准宏,数据类型和子例程。