pmgetconfig(3) — Linux manual page

NAME | C SYNOPSIS | DESCRIPTION | RETURN VALUE | PCP ENVIRONMENT | SEE ALSO | COLOPHON

PMGETCONFIG(3)           Library Functions Manual          PMGETCONFIG(3)

NAME         top

       pmGetConfig, pmGetOptionalConfig, pmGetAPIConfig - return values
       for Performance Co-Pilot configuration variables

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       char *pmGetConfig(const char *variable);
       char *pmGetOptionalConfig(const char *variable);
       char *pmGetAPIConfig(const char *feature);

       cc ... -lpcp

DESCRIPTION         top

       The pmGetConfig and pmGetOptionalConfig functions search for vari‐
       able  first in the environment and then, if not found, in the Per‐
       formance Co-Pilot (PCP) configuration file and returns the  string
       result.   If  variable  is  not  already in the environment, it is
       added with a call to setenv(3) before returning.

       The pmGetOptionalConfig function allows for failures - either from
       variable not being set at all, or due to  the  configuration  file
       being missing.  pmGetConfig is less tolerant to a missing configu‐
       ration  file, which it treats as a critical PCP installation fail‐
       ure - see the ``RETURN VALUE'' section below for further details.

       The  default  location  of   the   PCP   configuration   file   is
       /etc/pcp.conf  but  this may be changed by setting PCP_CONF in the
       environment to a new location, as described in pcp.conf(5).

       The pmGetAPIConfig function reports on features  of  the  PCP  li‐
       brary.  It can be used to query support for multi-threading, secu‐
       rity extensions, and other features.

       The  pmconfig(1)  utility  provides command line access to both of
       these interfaces, and also provides a mechanism  for  listing  all
       available variables and features that are valid arguments to these
       routines.

RETURN VALUE         top

       If variable is not found in either the environment or the PCP con‐
       figuration  file,  or  if  the configuration file is inaccessible,
       then pmGetOptionalConfig returns NULL.

       If variable is found in neither the environment nor the  PCP  con‐
       figuration file, then pmGetConfig returns an empty string.  If the
       PCP  configuration file is not found then a fatal error message is
       printed and the process will exit(2) - although this sounds  dras‐
       tic,  it  is  the  only course of action available because the PCP
       configuration/installation is deemed fatally flawed.

       The pmGetAPIConfig routine returns NULL on failure to  lookup  the
       requested  feature.   It  does not modify the environment, and re‐
       turns a pointer to a static read-only string.

       The value returned by all of these routines  is  either  a  static
       pointer  or  pointer into the environment, and so changing it is a
       bad idea.

PCP ENVIRONMENT         top

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

SEE ALSO         top

       PCPIntro(1),   pmconfig(1),  pmGetVersion(3),  exit(2),  PMAPI(3),
       getenv(3), setenv(3), pcp.conf(5), pcp.env(5) and environ(7).

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.   In‐
       formation  about the project can be found at ⟨http://www.pcp.io/⟩.
       If you have a  bug  report  for  this  manual  page,  send  it  to
       pcp@groups.io.  This page was obtained from the project's upstream
       Git  repository ⟨https://github.com/performancecopilot/pcp.git⟩ on
       2025-08-11.  (At that time, the date of  the  most  recent  commit
       that was found in the repository was 2025-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 man-pages@man7.org

Performance Co-Pilot               PCP                     PMGETCONFIG(3)

Pages that refer to this page: pmconfig(1)pcpintro(3)pmapi(3)pmda(3)pmdaopenlog(3)pmdatrace(3)pmdiscoverservices(3)pmgetarchiveend(3)pmgetarchivelabel(3)pmgetchildren(3)pmgetchildrenstatus(3)pmgetconfig(3)pmgetcontexthostname(3)pmgetindom(3)pmgetindomarchive(3)pmgetoptions(3)pmgetpmnslocation(3)pmgetusername(3)pmgetversion(3)pmidstr(3)pmindomstr(3)pmloadasciinamespace(3)pmloadnamespace(3)pmlocaltime(3)pmlookupdesc(3)pmlookupindom(3)pmlookupindomarchive(3)pmlookupindomtext(3)pmlookupname(3)pmlookuptext(3)pmnameall(3)pmnameid(3)pmnameindom(3)pmnameindomarchive(3)pmnewcontext(3)pmnewcontextzone(3)pmnewzone(3)pcp.conf(5)pcp.env(5)pmns(5)