NAME | C SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO | DIAGNOSTICS | COLOPHON

PMGETVERSION(3)           Library Functions Manual           PMGETVERSION(3)

NAME         top

       pmGetVersion - fetch installed PCP version number

C SYNOPSIS         top

       #include <pcp/pmapi.h>

       int pmGetVersion(void);

       cc ... -lpcp

DESCRIPTION         top

       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.

EXAMPLE         top

       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 4.0.0.

       #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);
       #endif
           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")
            ...
           }
       #else
           {
            char *ver = pmGetConfig("PCP_VERSION");
            /* only option is to extract version number from returned string */
            ...
           }
       #endif

SEE ALSO         top

       PMAPI(3), and pmGetConfig(3).

DIAGNOSTICS         top

       None.

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.
       Information 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@oss.sgi.com.  This page was obtained from the project's upstream
       Git repository ⟨git://git.pcp.io/pcp⟩ on 2017-05-03.  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                     PMGETVERSION(3)

Pages that refer to this page: pmgetconfig(3)