---
name: "pmloadasciinamespace"
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/pmLoadASCIINameSpace"
---

# pmloadasciinamespace(3)

establish a local PMNS for an application

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

## NAME

**pmLoadASCIINameSpace** - establish a local PMNS for an application

## C SYNOPSIS

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

**int pmLoadASCIINameSpace(const char \****filename***, int** *dupok***);**

**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 **pmLoadASCIINameSpace** or [**pmLoadNameSpace**(3)](/pmLoadNameSpace/3.md). If the application wants 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 **pmLoadASCIINameSpace**.

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.

**pmLoadASCIINameSpace** is a variant of [**pmLoadNameSpace**(3)](/pmLoadNameSpace/3.md) in which the *dupok* argument may be used to control the handling of multiple names in the PMNS that may be associated with a single Performance Metric Identifier (PMID).  A value of 0 disallows duplicates, any other value allows duplicates and the latter is the default behaviour of [**pmLoadNameSpace**(3)](/pmLoadNameSpace/3.md) as of Version 3.10.3 of PCP.

The other difference is that when **pmLoadASCIINameSpace** is used and *filename* is  **not** PM\_NS\_DEFAULT, the PMNS file will always be pre-processed with [**pmcpp**(1)](/pmcpp/1.md) as described in [**pmns**(5)](/pmns/5.md). This allows a PMNS file that contains C-style comments, pre-processor directives or macros to be processed correctly before the PMNS is parsed.

**pmLoadASCIINameSpace** 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), [**pmLoadNameSpace**(3)](/pmLoadNameSpace/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 to load more than one PMNS, or to call either **pmLoadASCIINameSpace** and/or [**pmLoadNameSpace**(3)](/pmLoadNameSpace/3.md) more than once.

**PM\_ERR\_PMNS**

-

  Syntax error in an ASCII format PMNS.
