io\_uring\_prep\_close(3) liburing Manual io\_uring\_prep\_close(3)

# [NAME](#NAME)

io\_uring\_prep\_close - prepare a file descriptor close request

# [SYNOPSIS](#SYNOPSIS)

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

```
void io_uring_prep_close(struct io_uring_sqe *sqe,
                          int fd);
```

```
void io_uring_prep_close_direct(struct io_uring_sqe *sqe,
                                unsigned file_index);
```

```

```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_prep\_close**(3)](/man/os/liburing/io_uring_prep_close.3) function prepares a close request. The submission queue entry *sqe* is setup to close the file descriptor indicated by *fd*.

For a direct descriptor close request, the offset is specified by the *file\_index* argument instead of the *fd*. This is identical to unregistering the direct descriptor, and is provided as a convenience. Note that even though it's closing a direct descriptor, the application must not set **IOSQE\_FIXED\_FILE** on the SQE. Otherwise the request will complete with **-EBADF** as the result.

These functions prepare an async [**close**(2)](/man/os/liburing/close.2) request. See that man page for details.

# [RETURN VALUE](#RETURN_VALUE)

None

# [ERRORS](#ERRORS)

The CQE *res* field will contain the result of the operation. See the related man page for details on possible values. For closing of a direct descriptor, the only failure cases are the kernel running completely out of memory, or if the application has specified an invalid direct descriptor. Note that where synchronous system calls will return **-1** on failure and set *errno* to the actual error value, io\_uring never uses *errno*. Instead it returns the negated *errno* directly in the CQE *res* field.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_get\_sqe**(3)](/man/os/liburing/io_uring_get_sqe.3), [**io\_uring\_submit**(3)](/man/os/liburing/io_uring_submit.3), [**close**(2)](/man/os/liburing/close.2)

March 13, 2022 liburing-2.2

---

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