# pmgetconfig

## NAME



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


## C SYNOPSIS



           **#include <pcp/pmapi.h>**
    
           **char *pmGetConfig(const char ***_variable_**);**
           **char *pmGetOptionalConfig(const char ***_variable_**);**
           **char *pmGetAPIConfig(const char ***_feature_**);**
    
           **cc ... -lpcp**
    


## DESCRIPTION



           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



           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



           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.
    


* * *