pmInDomStr_r(3) convert a performance metric instance domain identifier into a string

Other Alias



#include <pcp/pmapi.h>

const char *pmInDomStr(pmInDom indom);
char *pmInDomStr_r(pmInDom indom, char *buf, int buflen);

cc ... -lpcp


For use in error and diagnostic messages, pmInDomStr return a 'human readable' version of the specified instance domain identifier. The pmInDomStr_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.

The value for the instance domain indom is typically extracted from a pmDesc structure, following a call to pmLookupDesc(3) for a particular performance metric.

Internally, an instance domain identifier is encoded as follows;

typedef struct {
    int             pad:2;
    unsigned int    domain:8;        /* the administrative PMD */
    unsigned int    serial:22;       /* unique within PMD */
} __pmInDom_int;

pmInDomStr returns a string with each of the domain and serial subfields appearing as decimal numbers, separated by periods.

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


pmInDomStr returns a pointer to a static buffer and hence is not thread-safe. Multi-threaded applications should use pmInDomStr_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.