---
name: "SDL_hid_read"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_hid_read"
---

# SDL\_hid\_read(3)

Read an Input report from a HID device.

## NAME

SDL\_hid\_read - Read an Input report from a HID device.

## HEADER FILE

Defined in SDL3/SDL\_hidapi.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**int SDL\_hid\_read(SDL\_hid\_device \*dev, unsigned char \*data, size\_t length);**

## DESCRIPTION

Input reports are returned to the host through the INTERRUPT IN endpoint. The first byte will contain the Report number if the device uses numbered reports.

## FUNCTION PARAMETERS

- *dev*

  a device handle returned from  **SDL\_hid\_open** ().

- *data*

  a buffer to put the read data into.

- *length*

  the number of bytes to read. For devices with multiple reports, make sure to read an extra byte for the report number.

## RETURN VALUE

Returns the actual number of bytes read and -1 on failure; call

**SDL\_GetError** () for more information. If no packet was available to be read and the handle is in non-blocking mode, this function returns 0.

## AVAILABILITY

This function is available since SDL 3.2.0.
