Provided by: libpcp3-dev_5.3.7-1_amd64 bug


       pmGetVersion - fetch installed PCP version number


       #include <pcp/pmapi.h>

       int pmGetVersion(void);

       cc ... -lpcp


       pmGetVersion returns a binary encoding of the locally installed PCP version number.

       This   may   be  used  in  conjunction  with  the  related  macros  PM_VERSION(a,b,c)  and
       PM_VERSION_CURRENT that generate PCP version numbers in the same  format.   Refer  to  the
       example below.

       The  encoding  uses  one byte for each of the parts of the version number of the installed
       PCP package, namely the major number, the minor number and the revision  number.   So  PCP
       version 3.10.5 is encoded as 0x30a05.

       The  string  format  of  the  installed  PCP package version number as also available from
       pmGetConfig with the argument PCP_VERSION.

       pmGetVersion was introduced in PCP 3.10.5.


       The following C fragment demonstrates the use of both the compile-time macros and the run-
       time  pmGetVersion  function  for an application that should not be built for PCP versions
       older than 3.10.5, but after that there are two alternative implementations with  a  newer
       (faster,  sweeter, smaller) variant of the XYZ service that only becoming available in PCP

       #include <pcp/pmapi.h>

       #ifdef PM_VERSION_CURRENT
       #if PM_VERSION_CURRENT < PM_VERSION(3,10,5)
           /* no pmGetVersion() before PCP 3.10.5 */
           printf("PCP version 0x%x too old\n", PM_VERSION_CURRENT);
           version = pmGetVersion();
           if (version >= PM_VERSION(4,0,0) {
            /* V2 of the XYZ service introduced in PCP 4.0.0 */
            printf("Using V2 of service XYZ\n")
           else {
            printf("Using V1 of service XYZ\n")
            char *ver = pmGetConfig("PCP_VERSION");
            /* only option is to extract version number from returned string */


       PMAPI(3), and pmGetConfig(3).