# SDL_GetEventDescription

Generate a human-readable description of an event.

## Header File

Defined in [<SDL3/SDL_events.h>](https://github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_events.h)

## Syntax

```c
int SDL_GetEventDescription(const SDL_Event *event, char *buf, int buflen);
```

## Function Parameters

|                                |            |                                                              |
| ------------------------------ | ---------- | ------------------------------------------------------------ |
| const [SDL_Event](SDL_Event) * | **event**  | an event to describe. May be NULL.                           |
| char *                         | **buf**    | the buffer to fill with the description string. May be NULL. |
| int                            | **buflen** | the maximum bytes that can be written to `buf`.              |

## Return Value

(int) Returns number of bytes needed for the full string, not counting the
null-terminator byte.

## Remarks

This will fill `buf` with a null-terminated string that might look
something like this:

```
SDL_EVENT_MOUSE_MOTION (timestamp=1140256324 windowid=2 which=0 state=0 x=492.99 y=139.09 xrel=52 yrel=6)
```

The exact format of the string is not guaranteed; it is intended for
logging purposes, to be read by a human, and not parsed by a computer.

The returned value follows the same rules as
[SDL_snprintf](SDL_snprintf)(): `buf` will always be NULL-terminated
(unless `buflen` is zero), and will be truncated if `buflen` is too small.
The return code is the number of bytes needed for the complete string, not
counting the NULL-terminator, whether the string was truncated or not.
Unlike [SDL_snprintf](SDL_snprintf)(), though, this function never returns
-1.

## Thread Safety

It is safe to call this function from any thread.

## Version

This function is available since SDL 3.4.0.

----
[CategoryAPI](CategoryAPI), [CategoryAPIFunction](CategoryAPIFunction), [CategoryEvents](CategoryEvents)