---
name: "io_uring_cqe_seen"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_cqe_seen"
---

# io\_uring\_cqe\_seen(3)

mark io\_uring completion event as consumed

## NAME

io\_uring\_cqe\_seen - mark io\_uring completion event as consumed

## SYNOPSIS

```
#include <liburing.h>
```

**void io\_uring\_cqe\_seen(struct io\_uring \****ring***,**                        **struct io\_uring\_cqe \****cqe***);**

## DESCRIPTION

The [**io\_uring\_cqe\_seen**(3)](/io_uring_cqe_seen/3.md) function marks the IO completion *cqe* belonging to the *ring* param as consumed.

After the caller has submitted a request with [**io\_uring\_submit**(3)](/io_uring_submit/3.md), the application can retrieve the completion with [**io\_uring\_wait\_cqe**(3)](/io_uring_wait_cqe/3.md), [**io\_uring\_peek\_cqe**(3)](/io_uring_peek_cqe/3.md), or any of the other CQE retrieval helpers, and mark it as consumed with [**io\_uring\_cqe\_seen**(3)](/io_uring_cqe_seen/3.md).

Completions must be marked as completed so their slot can get reused.

## RETURN VALUE

None

## SEE ALSO

[**io\_uring\_submit**(3)](/io_uring_submit/3.md), [**io\_uring\_peek\_cqe**(3)](/io_uring_peek_cqe/3.md), [**io\_uring\_wait\_cqe**(3)](/io_uring_wait_cqe/3.md), [**io\_uring\_wait\_cqes**(3)](/io_uring_wait_cqes/3.md), [**io\_uring\_wait\_cqe\_timeout**(3)](/io_uring_wait_cqe_timeout/3.md)
