получить номер установленной версии PCP (fetch installed PCP version number)
Имя (Name)
pmGetVersion
- fetch installed PCP version number
Синопсис C (C Synopsis)
#include <pcp/pmapi.h>
int pmGetVersion(void);
cc ... -lpcp
Описание (Description)
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.
Примеры (Examples)
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)
PMAPI(3), and pmGetConfig(3).