Provided by:
manpages-es_1.55-10_all 
NOMBRE
posix_memalign, memalign, valloc - Asigna memoria alineada
SINOPSIS
#include <stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size);
void *memalign(size_t boundary, size_t size);
void *valloc(size_t size);
DESCRIPCI'ON
La funcion posix_memalign() asigna size bytes y deja la direccion de la
memoria reservada en *memptr. La direccion de la memoria reservada
sera un multiplo de alignment, que debe ser una potencia de dos y un
multiplo de sizeof(void *).
La funcion obsoleta memalign() asigna size bytes y devuelve un puntero
a la memoria reservada. La direccion de memoria sera un multiplo de
boundary, que debe ser una potencia de dos.
La funcion obsoleta valloc() asigna size bytes y devuelve un puntero a
la memoria reservada. La direccion de memoria sera un multiplo del
tamano de pagina. Es equivalente a
memalign(sysconf(_SC_PAGESIZE),size).
En todas estas rutinas, la memoria no se rellena con ceros.
VALOR DEVUELTO
memalign() y valloc() devuelven un puntero a la memoria reservada, o
NULL si falla la peticion.
posix_memalign() devuelve cero en caso de exito, o uno de los codigos
de error listados en la siguiente seccion en caso de fallo. Observe que
errno no se modifica.
ERRORES
EINVAL El parametro alignment no es una potencia de dos, o no es un
multiplo de sizeof(void *).
ENOMEM No hay suficiente memoria para satisfacer la peticion de
reserva.
OBSERVACIONES
posix_memalign() verifica que alignment cumpla los requisitos
detallados arriba. memalign() puede no comprobar que el parametro
boundary sea correcto.
POSIX exige que la memoria obtenida con posix_memalign() pueda ser
liberada usando free(). Algunos sistemas no ofrecen ninguna manera de
recuperar la memoria reservada con memalign() o valloc() (porque solo
se puede pasar a free() un puntero obtenido con malloc(), mientras p.e.
memalign() llamaria a malloc() y despues alinearia el valor obtenido).
GNU libc permite que la memoria obtenida con cualquiera de estas
rutinas sea recuperada con free().
La version de malloc() de GNU libc siempre devuelve direcciones de
memoria alineadas de 8 bytes, por lo que estas rutinas solamente se
necesitan si requiere valores de alineamiento mayores.
AVAILABILITY
Las funciones memalign() y valloc() han estado disponibles en todas las
bibliotecas libc de Linux. La funcion posix_memalign() esta disponible
desde glibc 2.1.91.
CONFORME A
La funcion valloc() aparecio en 3.0 BSD. Esta documentada como obsoleta
en BSD 4.3, y como antigua en SUSv2. Ya no aparece en SUSv3. La
funcion memalign() aparece en SunOS 4.1.3 pero no en BSD 4.4. La
funcion posix_memalign() viene de POSIX 1003.1d.
V'EASE TAMBI'EN
malloc(3), free(3), getpagesize(2), brk(2)