---
name: "PAPI_start_counters"
section: "3"
platform: "linux"
package: "libpapi-dev"
version: "5.7.0+dfsg-2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/PAPI_start_counters"
---

# PAPI\_start\_counters(3)

Start counting hardware events.

## NAME

PAPI\_start\_counters -

Start counting hardware events.

## SYNOPSIS

## Detailed Description

```
@par C Interface:
int PAPI_start_counters( int *events, int array_len );
```

**Parameters:**

*\*events* an array of codes for events such as PAPI\_INT\_INS or a native event code \
 *array\_len* the number of items in the \*events array

**Return values:**

*PAPI\_EINVAL* One or more of the arguments is invalid. \
 *PAPI\_EISRUN* Counters have already been started, you must call **PAPI\_stop\_counters()** before you call this function again. \
 *PAPI\_ESYS* A system or C library call failed inside PAPI, see the errno variable. \
 *PAPI\_ENOMEM* Insufficient memory to complete the operation. \
 *PAPI\_ECNFLCT* The underlying counter hardware cannot count this event and other events in the EventSet simultaneously. \
 *PAPI\_ENOEVNT* The PAPI preset is not available on the underlying hardware.

**PAPI\_start\_counters()** starts counting the events named in the \*events array. This function cannot be called if the counters have already been started. The user must call **PAPI\_stop\_counters()** to stop the events explicitly if he/she wants to call this function again. It is the user's responsibility to choose events that can be counted simultaneously by reading the vendor's documentation. The length of the \*events array should be no longer than the value returned by **PAPI\_num\_counters()**.

```
if( PAPI_start_counters( Events, num_hwcntrs ) != PAPI_OK )
    handle_error(1);
 *
```

**See Also:**

**PAPI\_stop\_counters()** **PAPI\_add\_event()** **PAPI\_create\_eventset()**

## Author

Generated automatically by Doxygen for PAPI from the source code.
