posix_memalign
Section: C Library Functions (3)
Updated: 202-0-08
Index
Return to Main Contents
NAME
posix_memalign
-
allocate aligned memory
LIBRARY
Standard C library
(
libc,~
-lc)
SYNOPSIS
#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
DESCRIPTION
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.
RETURN VALUE
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.
ERRORS
- EINVAL
-
The
alignment
argument was not a power of two, or was not a multiple of
sizeof(void *).
- ENOMEM
-
Out of memory.
ATTRIBUTES
For an explanation of the terms used in this section, see
attributes(7).
| Interface | Attribute | Value
|
|
posix_memalign()
| Thread safety | M-Safe
|
STANDARDS
POSIX.-2024.
HISTORY
glibc 2.1.91.
POSIX.1d, POSIX.-2001.
CAVEATS
On Linux (and other systems),
posix_memalign()
does not modify
memptr
on failure.
A requirement standardizing this behavior was added in POSIX.-2008 TC2.
SEE ALSO
aligned_alloc(3)
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- ATTRIBUTES
-
- STANDARDS
-
- HISTORY
-
- CAVEATS
-
- SEE ALSO
-