Provided by: libpcp3-dev_3.5.11_amd64 bug


       pmNameID, pmRequestNameID, pmReceiveNameID - translate a PMID to a performance metric name


       #include <pcp/pmapi.h>

       int pmNameID(pmID pmid, char **name);
       int pmRequestNameID(int ctx, pmID pmid);
       int pmRecieveNameID(int ctx, char **name);

       cc ... -lpcp


       Given  a  Performance Metric ID (PMID) via pmid, pmNameID will determine the corresponding
       metric name, if any, in the Performance Metrics Name Space (PMNS),  and  return  this  via

       If  the PMNS contains multiple names associated with the requested PMID, one of these will
       be returned via name, but there is no way to determine which of the duplicate  names  this
       will be.  See pmNameAll(3) if all of the corresponding names are required.

       name  is  a  null-byte terminated string, allocated by pmNameID using malloc(3C) and it is
       the caller's responsibility to call free(3C) to release the storage when the value  is  no
       longer required.

       In the absence of errors, pmNameID returns zero.

       pmRequestNameID  and pmReceiveNameID are used by applications which must  communicate with
       the PMCD asynchronously.  These functions take explicit  context  handle  ctx  which  must
       refer  to  a  host  context  (i.e.  created  by  passing PM_CONTEXT_HOST to pmNewContext).
       pmRequestNameID sends request to PMCD to translate PMID  to  a  metric  name  and  returns
       without  waiting  for  the  response,  pmReceiveNameID  reads  reply  from PMCD. It is the
       responsibility of the  application  to  make  sure  the  data  are  ready  before  calling
       pmReceiveNameID to avoid blocking.


       PMAPI(3),         pmGetChildren(3),         pmGetChildrenStatus(3),        pmGetConfig(3),
       pmLoadASCIINameSpace(3),      pmLoadNameSpace(3),      pmLookupName(3),      pmNameAll(3),
       pmNewContext(3), pcp.conf(4), pcp.env(4) and pmns(4).


              Failed  to  access  a  PMNS  for  operation.  Note that if the application hasn't a
              priori called pmLoadNameSpace(3) and wants to use the distributed PMNS, then a call
              to pmNameId must be made after the creation of a context (see pmNewContext(3)).

              pmid does not correspond to a defined PMID in the PMNS.

              Other diagnostics are for protocol failures when accessing the distributed PMNS.

              Context is currently in use by another asynchronous call.