---
name: "pmGetInDomArchive"
section: "3"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pmGetInDomArchive"
---

# pmGetInDomArchive(3)

get instance identifiers for a performance metrics instance domain

## NAME

**pmGetInDomArchive** - get instance identifiers for a performance metrics instance domain

## C SYNOPSIS

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

**int pmGetInDomArchive(pmInDom** *indom***,** **int \*\****instlist***,** **char \*\*\****namelist***);**

**cc ... -lpcp**

## DESCRIPTION

Provided the current Performance Metrics Application Programming Interface (PMAPI) context is associated with a set of archives, **pmGetInDomArchive** will scan the union of all the instance domain metadata for the instance domain *indom*, and return via *instlist* the internal instance identifiers for all instances, and via *namelist* the full external identifiers for all instances.

This routine is a specialized version of the more general PMAPI routine **pmGetInDom**.

The number of instances found is returned as the function value (else less than zero to indicate an error).

The value for the instance domain *indom* is typically extracted from a *pmDesc* structure, following a call to [**pmLookupDesc**(3)](/pmLookupDesc/3.md) for a particular performance metric.

The resulting lists of instance identifiers (*instlist* and *namelist*), and the names that the elements of *namelist* point to, will have been allocated by **pmGetInDomArchive** with two calls to [**malloc**(3)](/malloc/3.md), and it is the responsibility of the caller to *free(instlist)* and *free(namelist)* to release the space when it is no longer required.

When the result of **pmGetInDomArchive** is less than one, both *instlist* and *namelist* are undefined (no space will have been allocated, and so calling [**free**(3)](/free/3.md) is a singularly bad idea).

## DIAGNOSTICS

- **PM\_ERR\_NOTARCHIVE**

  the current PMAPI context is not associated with a set of archives

- **PM\_ERR\_INDOM\_LOG**

  *indom* is not a defined instance domain identifier for the set of archives

## 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

[**PMAPI**(3)](/PMAPI/3.md), [**pmGetConfig**(3)](/pmGetConfig/3.md), [**pmGetInDom**(3)](/pmGetInDom/3.md), [**pmLookupDesc**(3)](/pmLookupDesc/3.md), [**pmLookupInDomArchive**(3)](/pmLookupInDomArchive/3.md), [**pmNameInDomArchive**(3)](/pmNameInDomArchive/3.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).
