PMATOMSTR(3)              Library Functions Manual              PMATOMSTR(3)

NAME         top

       pmAtomStr,  pmAtomStr_r  -  convert a performance metric value into a

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       const char *pmAtomStr(const pmAtomValue *avp, int type);
       char *pmAtomStr_r(const pmAtomValue *avp, int type, char *buf, int

       cc ... -lpcp

DESCRIPTION         top

       All performance metric values may be encoded in a pmAtomValue union,
       defined as follows;

            typedef union {
                __int32_t    l;     /* 32-bit signed */
                __uint32_t   ul;    /* 32-bit unsigned */
                __int64_t    ll;    /* 64-bit signed */
                __uint64_t   ull;   /* 64-bit unsigned */
                float        f;     /* 32-bit floating point */
                double       d;     /* 64-bit floating point */
                char         *cp;   /* char ptr */
                pmValueBlock *vbp;  /* pmValueBlock ptr */
            } pmAtomValue;

       Given the performance metric value pointed to by avp, and a
       performance metric type defined by type, pmAtomStr will generate the
       corresponding metric value as a string, suitable for diagnostic or
       report output.  The pmAtomStr_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 80 bytes.

       The value for type is typically extracted from a pmDesc structure,
       following a call to pmLookupDesc(3) for a particular performance

       If the type is PM_TYPE_STRING values longer than 38 characters will
       be truncated after 34 characters, and truncation shown with ellipsis
       ``...'' at the end of the value.

       If the type is PM_TYPE_AGGREGATE then up to the first three 32-bit
       words are displayed as hexadecimal values.

       If the type is PM_TYPE_EVENT then a summary of the number of event
       records found in the value is generated.

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

NOTES         top

       pmAtomStr returns a pointer to a static buffer and hence is not
       thread-safe.  Multi-threaded applications should use pmAtomStr_r

SEE ALSO         top

       PMAPI(3), pmConvScale(3), pmExtractValue(3), pmLookupDesc(3),
       pmPrintValue(3), pmTypeStr(3) and pmUnitsStr(3).

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.
       Information about the project can be found at ⟨⟩.
       If you have a bug report for this manual page, send it to  This page was obtained from the project's upstream
       Git repository ⟨git://⟩ on 2017-03-13.  If you discover
       any rendering problems in this HTML version of the page, or you
       believe there is a better or more up-to-date source for the page, or
       you have corrections or improvements to the information in this
       COLOPHON (which is not part of the original manual page), send a mail

Performance Co-Pilot                 PCP                        PMATOMSTR(3)