memalign()

Выделить память с выравниванием

Прототип:

#include <malloc.h>
void * memalign( size_t alignment,
size_t size );

Аргументы:

alignment
Выравнивание выделяемой памяти. Выравнивание должно быть кратно sizeof( void* ).
size
Объём выделяемой памяти в байтах.

Библиотека:

libc

Описание:

Функция memalign() выделяет size байт, выравненных по границе, указанной в alignment.


Caution: Поскольку malloc() для адресации использует знаковое 32-битное число, нельзя за один раз выделить больше 2 ГБ. Если size больше 2 ГБ, memalign() вернет значение ошибки ENOMEM.

Возвращаемое значение:

Указатель на выделенный блок памяти.

При возникновении ошибки функция возвращает NULL, код ошибки записывается в errno.

Коды ошибок:

EINVAL
Значение alignment не кратно sizeof( void* ).
ENOMEM
Недостаточно памяти для запрошенного выравнивания.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

free(), malloc(), posix_memalign()




Предыдущий раздел: Описание API системной библиотеки