.TH "PAPI_read" 3 "Thu Dec 14 2023" "Version 7.1.0.0" "PAPI" \" -*- nroff -*- .ad l .nh .SH NAME PAPI_read \- Read hardware counters from an event set\&. .SH SYNOPSIS .br .PP .SH "Detailed Description" .PP .PP \fBC Interface:\fP .RS 4 #include <\fBpapi\&.h\fP> .br int \fBPAPI_read(int EventSet, long_long * values )\fP; .RE .PP \fBPAPI_read()\fP copies the counters of the indicated event set into the provided array\&. .PP The counters continue counting after the read\&. .PP Note the differences between \fBPAPI_read()\fP and \fBPAPI_accum()\fP, specifically that \fBPAPI_accum()\fP resets the values array to zero\&. .PP \fBPAPI_read()\fP assumes an initialized PAPI library and a properly added event set\&. .PP \fBParameters\fP .RS 4 \fIEventSet\fP -- an integer handle for a PAPI Event Set as created by \fBPAPI_create_eventset()\fP .br \fI*values\fP -- an array to hold the counter values of the counting events .RE .PP \fBReturn values\fP .RS 4 \fIPAPI_EINVAL\fP One or more of the arguments is invalid\&. .br \fIPAPI_ESYS\fP A system or C library call failed inside PAPI, see the errno variable\&. .br \fIPAPI_ENOEVST\fP The event set specified does not exist\&. .RE .PP \fBExamples\fP .RS 4 .PP .nf 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 .fi .PP .RE .PP \fBSee also\fP .RS 4 \fBPAPI_accum\fP .PP \fBPAPI_start\fP .PP \fBPAPI_stop\fP .PP \fBPAPI_reset\fP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for PAPI from the source code\&.