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

# pmTypeStr(3)

convert a performance metric type into a string

## NAME

**pmTypeStr**, **pmTypeStr\_r** - convert a performance metric type into a string

## C SYNOPSIS

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

**const char \*pmTypeStr(int** *type***);**\
 **char \*pmTypeStr\_r(int** *type***, char \****buf***, int** *buflen***);**

**cc ... -lpcp**

## DESCRIPTION

Given a performance metric *type*, **pmTypeStr** produces a terse ASCII equivalent, appropriate for use in error and diagnostic messages. The **pmTypeStr\_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 20 bytes.

The value for *type* is typically extracted from a *pmDesc* structure, following a call to [**pmLookupDesc**(3)](/pmLookupDesc/3.md) for a particular performance metric.

Examples are **32** (for *type* equals **PM\_TYPE\_32**), **U64** (for *type* equals **PM\_TYPE\_U64**), **STRING** (for *type* equals **PM\_TYPE\_STRING**), etc.

## NOTES

Both of these functions are safe to call from threaded contexts.

## SEE ALSO

[**PMAPI**(3)](/PMAPI/3.md), [**pmAtomStr**(3)](/pmAtomStr/3.md), [**pmConvScale**(3)](/pmConvScale/3.md), [**pmExtractValue**(3)](/pmExtractValue/3.md), [**pmLookupDesc**(3)](/pmLookupDesc/3.md), [**pmPrintValue**(3)](/pmPrintValue/3.md), [**pmIDStr**(3)](/pmIDStr/3.md), [**pmInDomStr**(3)](/pmInDomStr/3.md), [**pmSemStr**(3)](/pmSemStr/3.md) and [**pmUnitsStr**(3)](/pmUnitsStr/3.md).
