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

# pmErrStr(3)

convert a PMAPI error code into a string

## NAME

**pmErrStr**, **pmErrStr\_r** - convert a PMAPI error code into a string

## C SYNOPSIS

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

**const char \*pmErrStr(int** *code***);**\
 **char \*pmErrStr\_r(int** *code***, char \****buf***, int** *buflen***);**

**cc ... -lpcp**

## DESCRIPTION

Translate an error code into a text string, suitable for generating a diagnostic message. The **pmErrStr\_r** function does the same, but stores the result in a user-supplied buffer *buf* of length *buflen*, which should have room for at least **PM\_MAXERRMSGLEN** bytes.

By convention, all error codes are negative. The small values are assumed to be negated versions of the Unix error codes as defined in **\<errno.h\>** and the strings returned are as per [**strerror**(3)](/strerror/3.md). The larger, negative error codes are Performance Metrics Application Programming Interface (PMAPI) error conditions and [**pmErrStr**(3)](/pmErrStr/3.md) returns an appropriate PMAPI error string, as determined by *code*.

## NOTES

**pmErrStr** returns a pointer to a static buffer, so the returned value is only valid until the next call to **pmErrStr** and hence is not thread-safe. Multi-threaded applications should use **pmErrStr\_r** instead.

## SEE ALSO

[**pmerr**(1)](/pmerr/1.md), [**PMAPI**(3)](/PMAPI/3.md) and [**perror**(3)](/perror/3.md).
