|
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | ATTRIBUTES | STANDARDS | HISTORY | CAVEATS | SEE ALSO | COLOPHON |
|
|
|
posix_memalign(3) Library Functions Manual posix_memalign(3)
posix_memalign - allocate aligned memory
Standard C library (libc, -lc)
#include <stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size);
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
posix_memalign():
_POSIX_C_SOURCE >= 200112L
posix_memalign() allocates size bytes and places the address of
the allocated memory in *memptr. The address of the allocated
memory will be a multiple of alignment, which must be a power of
two and a multiple of sizeof(void *). This address can later be
successfully passed to free(3). If size is 0, then the value
placed in *memptr is either NULL or a unique pointer value.
The memory is not zeroed.
aligned_alloc(3) is a standard function that provides the same
functionality, and has a more ergonomic prototype. Use that
instead.
posix_memalign() returns zero on success, or one of the error
values listed in the next section on failure. The value of errno
is not set.
EINVAL The alignment argument was not a power of two, or was not a
multiple of sizeof(void *).
ENOMEM Out of memory.
For an explanation of the terms used in this section, see
attributes(7).
┌──────────────────────────────────────┬───────────────┬─────────┐
│ Interface │ Attribute │ Value │
├──────────────────────────────────────┼───────────────┼─────────┤
│ posix_memalign() │ Thread safety │ MT-Safe │
└──────────────────────────────────────┴───────────────┴─────────┘
POSIX.1-2024.
glibc 2.1.91. POSIX.1d, POSIX.1-2001.
On Linux (and other systems), posix_memalign() does not modify
memptr on failure. A requirement standardizing this behavior was
added in POSIX.1-2008 TC2.
aligned_alloc(3)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.18.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2026-05-24. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.18 2026-02-08 posix_memalign(3)
Pages that refer to this page: io_uring_register(2), io_uring_register_buf_ring(3), malloc(3), mallopt(3), pthread_attr_setstack(3)