---
name: "pmiputresult"
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/pmiPutResult"
---

# pmiputresult(3)

add a data record to a LOGIMPORT archive

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

## NAME

**pmiPutResult** - add a data record to a LOGIMPORT archive

## C SYNOPSIS

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

**int pmiPutResult(const pmResult \****result***);**

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

## DESCRIPTION

As part of the Performance Co-Pilot Log Import API (see [**LOGIMPORT**(3)](/LOGIMPORT/3.md)), **pmiPutResult** provides an interface for developers familiar with the internal PCP data structures to create output archives directly.

By building the **pmResult** data structure directly, then calling **pmiPutResult** the developer avoids calls to [**pmiPutValue**(3)](/pmiPutValue/3.md) and/or [**pmiPutValueHandle**(3)](/pmiPutValueHandle/3.md) followed by a call to [**pmiWrite**(3)](/pmiWrite/3.md) for each record written to the archive.

Any metrics and instances appearing in the *result* must have been defined by prior calls to [**pmiAddMetric**(3)](/pmiAddMetric/3.md) and [**pmiAddInstance**(3)](/pmiAddInstance/3.md).

**pmiPutResult** will arrange for any new metadata (metrics and/or instance domain changes) covered by *result* to be also written to the PCP archive.

Because of the complexity of the **pmResult** data structure, this routine is not available in the Perl interface to the LOGIMPORT services.

## DIAGNOSTICS

**pmiPutResult** 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), [**PMAPI**(3)](/PMAPI/3.md), [**pmiAddInstance**(3)](/pmiAddInstance/3.md), [**pmiAddMetric**(3)](/pmiAddMetric/3.md), [**pmiErrStr**(3)](/pmiErrStr/3.md), [**pmiPutValue**(3)](/pmiPutValue/3.md), [**pmiPutText**(3)](/pmiPutText/3.md), [**pmiPutLabel**(3)](/pmiPutLabel/3.md), [**pmiPutValueHandle**(3)](/pmiPutValueHandle/3.md), [**pmiSetTimezone**(3)](/pmiSetTimezone/3.md) and [**pmiWrite**(3)](/pmiWrite/3.md).
