io\_uring\_close\_ring\_fd(3) liburing Manual io\_uring\_close\_ring\_fd(3)

# [NAME](#NAME)

io\_uring\_close\_ring\_fd - close a ring file descriptor and use it only via registered index

# [SYNOPSIS](#SYNOPSIS)

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

```
int io_uring_close_ring_fd(struct io_uring *ring);
```

# [DESCRIPTION](#DESCRIPTION)

[**io\_uring\_close\_ring\_fd**(3)](/man/os/liburing/io_uring_close_ring_fd.3) closes the ring file descriptor, which must have been previously registered. The file will remain open, but accessible only via the registered index, not via any file descriptor. Subsequent liburing calls will continue to work, using the registered ring fd.

The kernel must support **IORING\_FEAT\_REG\_REG\_RING**.

Libraries that must avoid disrupting their users' uses of file descriptors, and must continue working even in the face of [**close\_range**(2)](/man/os/liburing/close_range.2) and similar, can use [**io\_uring\_close\_ring\_fd**(3)](/man/os/liburing/io_uring_close_ring_fd.3) to work with liburing without having any open file descriptor.

# [NOTES](#NOTES)

Each thread that wants to make use of io\_uring must register the fd. A library that may get called from arbitrary theads may need to detect when it gets called on a previously unseen thread and create and register a ring for that thread.

# [RETURN VALUE](#RETURN_VALUE)

Returns 1 on success, or **-errno** on error.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_register\_ring\_fd**(3)](/man/os/liburing/io_uring_register_ring_fd.3)

September 25, 2022 liburing-2.4

---

Document: io_uring_close_ring_fd(3) from liburing 2.15-r4 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
