io_uring_prep_getxattr(3)
π NAME π
io_uring_prep_getxattr, io_uring_prep_fgetxattr β bestie, these two are here to prep a request that gets an extended attribute value. That's the whole job. They prep. You submit. Slay. β¨
This is from the liburing manual, and it's giving very much "small function, big responsibility" energy. π
β¨ SYNOPSIS β¨
#include <liburing.h>
void io_uring_prep_getxattr(struct io_uring_sqe *sqe,
const char *name,
char *value,
const char *path,
unsigned int len);
void io_uring_prep_fgetxattr(struct io_uring_sqe *sqe,
int fd,
const char *name,
char *value,
unsigned int len);
okay so two functions, same vibe, slightly different ways of pointing at the thing. one wants a path, one wants an fd. iykyk. π¦
πΈ DESCRIPTION πΈ
The io_uring_prep_getxattr(3) function prepares a request to get an extended attribute value. Not me hyping up a prep function, but here we are. π
The submission queue entry sqe is set up to get the value of the extended attribute identified by name and associated with the given path in the filesystem. The len argument specifies the size (in bytes) of value. So like, len is how much room you're giving it, bestie β make sure value can actually hold that many bytes, mwah. π
io_uring_prep_fgetxattr(3) is literally identical to io_uring_prep_getxattr(3), except the open file referred to by fd is the one getting interrogated instead of path. Same energy, different address. Periodt. π
This function prepares an async getxattr(2) request. So if you want the full lore on how getxattr actually behaves, go read that man page β it's the main character here, this one's just the setup girlie. π₯
fr fr, all the real details live in getxattr(2). We're just prepping the request over here. π«Ά
β RETURN VALUE β
None.
That's it. That's the whole section. It preps, it doesn't return. Iconic minimalism honestly. πβ¨
π¦ SEE ALSO π¦
io_uring_get_sqe(3)β because you need asqeto prep into, duh πgetxattr(2)β the actual main character, go read it π
and that's the whole page, bestie!! this was pulled from liburing-2.4, dated January 23, 2023. go forth and get those extended attributes, you absolute legend. πππΈ no cap.
π¦ where this page comes from
- alpine 3.22: liburing-doc 2.9-r0 Β· LGPL-2.1-or-later OR MIT
- alpine 3.23: liburing-doc 2.12-r0 Β· LGPL-2.1-or-later OR MIT
- alpine 3.24: liburing-doc 2.14-r0 Β· LGPL-2.1-or-later OR MIT
- arch rolling: liburing 2.15-1 Β· GPL-2.0-only WITH Linux-syscall-note OR MIT AND LGPL-2.0-or-later AND MIT
- centos-stream 10: liburing-devel 2.12-1.el10 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- centos-stream 9: liburing-devel 2.12-1.el9 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- centos-stream 9: liburing-devel 2.12-1.el9 Β· (GPLv2 with exceptions and LGPLv2+) or MIT
- debian trixie: liburing-dev 2.9-1
- fedora 43: liburing-devel 2.9-2.fc43 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 43: liburing-devel 2.9-2.fc43 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 44: liburing-devel 2.13-2.fc44 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- fedora 44: liburing-devel 2.13-2.fc44 Β· (GPL-2.0-only WITH Linux-syscall-note OR MIT) AND (LGPL-2.0-or-later OR MIT)
- nixpkgs unstable: liburing 2.14
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- opensuse-leap 16.0: liburing-devel 2.8-160000.3.1 Β· (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
- ubuntu noble: liburing-dev 2.5-1build1
- ubuntu questing: liburing-dev 2.11-1
- ubuntu resolute: liburing-dev 2.14-1
- ubuntu stonking: liburing-dev 2.15-1
- π the page's license: LGPL-2.0-or-later
- Copyright (C) 2023 Rutvik Patel <heyrutvik@gmail.com>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms