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

# pmLoadNameSpace(3)

load a local PMNS for an application

## NAME

**pmLoadNameSpace** - load a local PMNS for an application

## C SYNOPSIS

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

**int pmLoadNameSpace(const char \****filename***);**

**cc ... -lpcp**

## DESCRIPTION

If the application wants to force using a local Performance Metrics Name Space (PMNS) instead of a distributed PMNS then it must load the PMNS using **pmLoadNameSpace** or [**pmLoadASCIINameSpace**(3)](/pmLoadASCIINameSpace/3.md). If the application is to use a distributed PMNS, then it should NOT make a call to load the PMNS explicitly.

Most applications using a Performance Metrics Application Programming Interface (PMAPI) context (of any type, so PM\_CONTEXT\_HOST or PM\_CONTEXT\_ARCHIVE or PM\_CONTEXT\_LOCAL) should not need to call **pmLoadNameSpace**.

The *filename* argument designates the PMNS of interest. For applications not requiring a tailored PMNS, the special value **PM\_NS\_DEFAULT** may be used for *filename*, to force the default local PMNS to be loaded.

The default local PMNS is found in the file *$PCP\_VAR\_DIR/pmns/root* unless the environment variable **PMNS\_DEFAULT** is set, in which case the value is assumed to be the pathname to the file containing the default local PMNS.

Externally a PMNS is stored in an ASCII format as described in [**PMNS**(5)](/PMNS/5.md). However, note that **pmLoadNameSpace** assumes *filename* does not contain any C-style comments, preprocessor directives or macros; if this is not the case, [**pmLoadASCIINameSpace**(3)](/pmLoadASCIINameSpace/3.md) should be used instead.

As of Version 3.10.3 of PCP, by default, multiple names in the PMNS **are** allowed to be associated with a single Performance Metrics Identifier (PMID) and this is unconditionally allowed by **pmLoadNameSpace**. [**pmLoadASCIINameSpace**(3)](/pmLoadASCIINameSpace/3.md) provides an alternative interface with user-defined control over the handling of duplicate names for the same PMID in the PMNS.

**pmLoadNameSpace** returns zero on success.

## DIAGNOSTICS

Syntax and other errors in the parsing of the PMNS are reported on *stderr* with a message of the form \`\`Error Parsing ASCII PMNS: ...''.

**PM\_ERR\_DUPPMNS**

-

  It is an error to try and load more than one PMNS, or to call either **pmLoadNameSpace** and/or [**pmLoadASCIINameSpace**(3)](/pmLoadASCIINameSpace/3.md) more than once.

**PM\_ERR\_PMNS**

-

  Syntax error in the PMNS file.

## FILES

- *$PCP\_VAR\_DIR/pmns/root*

  the default local PMNS, when the environment variable **PMNS\_DEFAULT** is unset

## 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), [**pmLoadASCIINameSpace**(3)](/pmLoadASCIINameSpace/3.md), [**pmTrimNameSpace**(3)](/pmTrimNameSpace/3.md), [**pcp.conf**(5)](/pcp.conf/5.md), [**pcp.env**(5)](/pcp.env/5.md) and [**PMNS**(5)](/PMNS/5.md).
