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

# pmiPutMark(3)

write a \<mark\> record to a PCP archive

## NAME

**pmiPutMark** - write a *\<mark\>* record to a PCP archive

## C SYNOPSIS

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

**int pmiPutMark(void);**

**cc ... -lpcp\_import -lpcp**

## Perl SYNOPSIS

**use PCP::LogImport;**

**pmiPutMark();**

## Python SYNOPSIS

**from pcp import pmi**

**log.pmiPutMark()**

## DESCRIPTION

As part of the Performance Co-Pilot Log Import API (see [**LOGIMPORT**(3)](/LOGIMPORT/3.md)), **pmiPutMark** writes a **\<mark\>** record to the current PCP output archive. This is required when there is a temporal discontinuity between the current input source and the next input source, if any, and should be called after the final call to [**pmiWrite**(3)](/pmiWrite/3.md) for the current input. If there is no next input to be processed or no temporal gap between sources, then the **\<mark\>** record is not required.

The **\<mark\>** record is used to signify a temporal gap, so that when replaying the output PCP archive, interpolation of metric values should not be performed between the last timestamp in the current input source to the first timestamp in the next input source, i.e. across the **\<mark\>** record.

## DIAGNOSTICS

**pmiPutMark** returns zero on success else a negative value that can be turned into an error message by calling [**pmiErrStr**(3)](/pmiErrStr/3.md).

## SEE ALSO

[**LOGIMPORT**(3)](/LOGIMPORT/3.md), [**pmiAddInstance**(3)](/pmiAddInstance/3.md), [**pmiAddMetric**(3)](/pmiAddMetric/3.md), [**pmiErrStr**(3)](/pmiErrStr/3.md), [**pmiPutResult**(3)](/pmiPutResult/3.md), [**pmiPutValue**(3)](/pmiPutValue/3.md), [**pmiPutValueHandle**(3)](/pmiPutValueHandle/3.md), [**pmiPutText**(3)](/pmiPutText/3.md), [**pmiPutLabel**(3)](/pmiPutLabel/3.md) and [**pmiWrite**(3)](/pmiWrite/3.md).
