---
name: "pmParseHighResInterval"
section: "3"
platform: "linux"
package: "libpcp3-dev"
version: "6.3.8-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pmParseInterval"
---

# pmParseHighResInterval(3)

convert interval string to binary time structure

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

## NAME

**pmParseInterval**, **pmParseHighResInterval** - convert interval string to binary time structure

## C SYNOPSIS

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

**int pmParseInterval(const char \****string***, struct timeval \****urslt***, char \*\****errmsg***);**\
 **int pmParseHighResInterval(const char \****string***, struct timespec \****nrslt***, char \*\****errmsg***);**

**cc ... -lpcp**

## DESCRIPTION

**pmParseInterval** parses the argument *string* specifying an interval of time and fills in the **tv\_sec** and **tv\_usec** components of the *urslt* structure to represent that interval (microsecond precision).

Similarly, **pmParseHighResInterval** parses the argument *string* and fills in the **tv\_sec** and **tv\_nsec** components of the *nrslt* structure to represent that interval (nanosecond precision).

The input *string* is most commonly the argument following a **-t** command line option to a PCP application, and the syntax is fully described in [**PCPIntro**(1)](/PCPIntro/1.md).

## DIAGNOSTICS

**pmParseInterval** returns 0 and *errmsg* is undefined if the parsing is successful.

If the given *string* does not conform to the required syntax **pmParseInterval** returns -1 and a dynamically allocated error message string in *errmsg*. The error message is terminated with a newline and includes the text of the input *string* along with an indicator of the position at which the error was detected, e.g.\
 *4minutes 30mumble*\
            *^ -- unexpected value*

In the case of an error, the caller is responsible for calling [**free**(3)](/free/3.md) to release the space allocated for *errmsg*.

## SEE ALSO

[**PCPIntro**(1)](/PCPIntro/1.md), [**free**(3)](/free/3.md), [**PMAPI**(3)](/PMAPI/3.md) and [**pmParseTimeWindow**(3)](/pmParseTimeWindow/3.md).
