Выделить выровненный участок памяти
#include <stdlib.h>int posix_memalign( void **memptr,size_t alignment,size_t size );
2
.libc
Функция posix_memalign() выделяет size байт, выровненных согласно значению заданного параметром alignment. После чего функция возвращает указатель на выделенную память memptr.
Буфер, выделенный функцией posix_memalign(), непрерывен в виртуальном адресном пространстве, но не в физической памяти. Поскольку некоторые платформы не имеют возможности выделения памяти блоками размером 4
КБ, не следует предполагать, что выделенная память будет физически непрерывной, если указан размер 4
КБ или меньше.
Можно получить физический адрес начала буфера, используя mem_offset() с fd=NOFD
.
-1
, код ошибки записывается в errno.
2
. POSIX 1003.1 Advisory Information
errno, free(), malloc(), memalign()
Предыдущий раздел: Описание API системной библиотеки