---
name: "pmloadnamespace"
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/pmLoadNameSpace"
---

# pmloadnamespace(3)

load a local PMNS for an application

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

## 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, pre-processor 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.

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

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