pmIDStr (3) - Linux Manuals

pmIDStr: convert a performance metric identifier into a string


pmIDStr, pmIDStr_r - convert a performance metric identifier into a string


#include <pcp/pmapi.h>

const char *pmIDStr(pmID pmid);
char *pmIDStr_r(pmID pmid, char *buf, int buflen);

cc ... -lpcp


For use in error and diagnostic messages, pmIDStr returns a `human readable' version of the specified Performance Metric Identifier (PMID). The pmIDStr_r function does the same, but stores the result in a user-supplied buffer buf of length buflen, which should have room for at least 20 bytes.

Internally, a PMID is encoded as follows;

typedef struct {
    int             pad:2;
    unsigned int    domain:8;
    unsigned int    cluster:12;
    unsigned int    item:10;
} __pmID_int;

pmIDStr returns a string with each of the domain, cluster and item subfields appearing as decimal numbers, separated by periods.

The string value result from pmIDStr is held in a single static buffer, so the returned value is only valid until the next call to pmIDStr.


pmIDStr returns a pointer to a static buffer and hence is not thread-safe. Multi-threaded applications should use pmIDStr_r instead.


Environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the file /etc/pcp.conf contains the local values for these variables. The $PCP_CONF variable may be used to specify an alternative configuration file, as described in pcp.conf(5). Values for these variables may be obtained programmatically using the pmGetConfig(3) function.


PMAPI(3), pmGetConfig(3), pmInDomStr(3), pmLookupDesc(3), pcp.conf(5) and pcp.env(5).