pmGetContextHostName(3) — Linux manual page



NAME         top

       pmGetHostName,  pmGetContextHostName, pmGetContextHostName_r - return
       the hostname associated with a Performance Co-Pilot context

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       int pmGetHostName(int id, char *buf, int buflen);
       const char *pmGetContextHostName(int id);
       char *pmGetContextHostName_r(int id, char *buf, int buflen);

       cc ... -lpcp

DESCRIPTION         top

       Given a valid PCP context identifier previously created with
       pmNewContext(3) or pmDupContext(3), the pmGetContextHostName function
       returns the hostname associated with id.  The pmGetContextHostName_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
       MAXHOSTNAMELEN bytes.  The pmGetHostName function behaves similarly
       again, but returns a status code to indicate success or failure.

       If the context id is associated with an archive source of data, the
       hostname returned is extracted from the archive label using

       For live contexts, an attempt will first be made to retrieve the
       hostname from the PCP collector system using pmFetch(3) with the
       pmcd.hostname metric.  This allows client tools using this interface
       to retrieve an accurate host identifier even in the presence of port
       forwarding and tunnelled connections.

       Should this not succeed, then a fallback method is used.  For local
       contexts - with local meaning any of DSO, ``localhost'' or Unix
       domain socket connection - a hostname will be sought via
       gethostname(3).  For other contexts, the hostname extracted from the
       initial context host specification will be used.

RETURN VALUE         top

       If id is not a valid PCP context identifier, the returned hostname is
       a zero length string.

       On failure, the return code of pmGetHostName is a negative PMAPI
       error code which can be processed by pmErrStr_r(3) for diagnostics
       relating to the failure to obtain the context hostname.

NOTES         top

       pmGetContextHostName returns a pointer to a static buffer, so the
       returned value is only valid until the next call to
       pmGetContextHostName and hence is not thread-safe.  Multi-threaded
       applications should use pmGetHostName or pmGetContextHostName_r


       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)

SEE ALSO         top

       PCPIntro(1), PMAPI(3), gethostname(3), pmDupContext(3),
       pmErrStr_r(3), pmFetch(3), pmGetArchiveLabel(3), pmNewContext(3),
       pcp.conf(5) and pcp.env(5).

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 ⟨⟩ on
       2020-08-13.  (At that time, the date of the most recent commit that
       was found in the repository was 2020-08-11.)  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 to

Performance Co-Pilot                 PCP             PMGETCONTEXTHOSTNAME(3)