---
name: "pmgetarchivelabel"
section: "3"
platform: "linux"
package: "libpcp3-dev"
version: "4.3.2+really4.3.1-0.1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/pmGetArchiveLabel"
---

# pmgetarchivelabel(3)

fetch the label record from a set of performance metrics archive logs

Part of [pmGetArchiveLabel(3)](/pmGetArchiveLabel/3.md).

## NAME

**pmGetArchiveLabel** - fetch the label record from a set of performance metrics archive logs

## C SYNOPSIS

**#include \<pcp/pmapi.h\>**

**int pmGetArchiveLabel(pmLogLabel \****lp***);**

**cc ... -lpcp**

## DESCRIPTION

Within the framework of the Performance Co-Pilot (PCP), archive logs of performance metrics values may be accumulated and saved using the program [**pmlogger**(1)](/pmlogger/1.md).

The routine **pmGetArchiveLabel** may be used to fetch the label record from a set of archive logs that has already been opened using [**pmNewContext**(3)](/pmNewContext/3.md), or [**pmDupContext**(3)](/pmDupContext/3.md), and thereby associated with the current Performance Metrics Application Programming Interface (PMAPI) context.

The result returned via the pointer *lp* is a structure that must be pre-allocated by the caller and has the following format (defined in **pmapi.h**).

```
/*
 * Label Record at the start of every log file
 */
typedef struct {
  int        ll_magic;    /* PM_LOG_MAGIC | log format version no. */
  pid_t      ll_pid;      /* PID of logger */
  struct timeval ll_start;/* start of this log */
  char       ll_hostname[PM_LOG_MAXHOSTLEN]; /* name of collection host */
  char       ll_tz[40];   /* $TZ at collection host */
} pmLogLabel;
```

For an application, the most useful information from the archive label is likely to be in the fields *ll\_start*, *ll\_hostname* or *ll\_tz*.

Note that the size of the *ll\_hostname* field is *PM\_LOG\_MAXHOSTLEN* (64 bytes) which is less than **MAXHOSTNAMELEN** (see [**gethostbyname**(3)](/gethostbyname/3.md)) on some platforms. These semantics are necessary to retain backwards compatibility with the PCP archive file format.

**pmGetArchiveLabel** returns zero for success.

## PCP ENVIRONMENT

Environment variables with the prefix **PCP\_** are used to parameterize the file and directory names used by PCP. On each installation, the file */etc/pcp.conf* contains the local values for these variables. The **$PCP\_CONF** variable may be used to specify an alternative configuration file, as described in [**pcp.conf**(5)](/pcp.conf/5.md). Values for these variables may be obtained programmatically using the [**pmGetConfig**(3)](/pmGetConfig/3.md) function.

## SEE ALSO

[**pmlogger**(1)](/pmlogger/1.md), [**PMAPI**(3)](/PMAPI/3.md), [**pmDupContext**(3)](/pmDupContext/3.md), [**pmGetConfig**(3)](/pmGetConfig/3.md), [**pmNewContext**(3)](/pmNewContext/3.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).

## DIAGNOSTICS

- **PM\_ERR\_NOCONTEXT**

  the current PMAPI context is either invalid, or not associated with a set of archive logs
