---
name: "PAPI_read"
section: "3"
platform: "linux"
package: "libpapi-dev"
version: "7.1.0-5+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/PAPI_read"
---

# PAPI\_read(3)

Read hardware counters from an event set.

## NAME

PAPI\_read - Read hardware counters from an event set.

## SYNOPSIS

## Detailed Description

**C Interface:**

\#include \<**papi.h**\> \
\
  int **PAPI\_read(int  EventSet, long\_long \* values )**;

**PAPI\_read()** copies the counters of the indicated event set into the provided array.

The counters continue counting after the read.

Note the differences between **PAPI\_read()** and **PAPI\_accum()**, specifically that **PAPI\_accum()** resets the values array to zero.

**PAPI\_read()** assumes an initialized PAPI library and a properly added event set.

**Parameters**

*EventSet* -- an integer handle for a PAPI Event Set as created by **PAPI\_create\_eventset()** \
 *\*values* -- an array to hold the counter values of the counting events

**Return values**

*PAPI\_EINVAL* One or more of the arguments is invalid. \
 *PAPI\_ESYS* A system or C library call failed inside PAPI, see the errno variable. \
 *PAPI\_ENOEVST* The event set specified does not exist.

**Examples**

```
do_100events();
if (PAPI_read(EventSet, values) != PAPI_OK)
   handle_error(1);
// values[0] now equals 100
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
   handle_error(1);
// values[0] now equals 300
values[0] = -100;
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
    handle_error(1);
// values[0] now equals 0
```

**See also**

**PAPI\_accum**

**PAPI\_start**

**PAPI\_stop**

**PAPI\_reset**

## Author

Generated automatically by Doxygen for PAPI from the source code.
