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

# pmGetInDom(3)

get instance identifiers for a performance metrics instance domain

## NAME

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

## C SYNOPSIS

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

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

**cc ... -lpcp**

## DESCRIPTION

In the current Performance Metrics Application Programming Interface (PMAPI) context, locate the description of 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. 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 **pmGetInDom** 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 **pmGetInDom** 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\_INDOM**

  *indom* is not a valid instance domain identifier

## 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), [**pmGetInDomArchive**(3)](/pmGetInDomArchive/3.md), [**pmLookupDesc**(3)](/pmLookupDesc/3.md), [**pmLookupInDom**(3)](/pmLookupInDom/3.md), [**pmNameInDom**(3)](/pmNameInDom/3.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).
