posix_memalign | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
NOM | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
SYNOPSIS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
#include <stdlib.h> int posix_memalign(void **memptr, size_t alignment, size_t size); #include <malloc.h> void *valloc(size_t size); void *memalign(size_t boundary, size_t size);
Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :
posix_memalign() : _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
DESCRIPTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
La fonction obsolète memalign() alloue size octets et renvoie un pointeur vers la mémoire allouée. L'adresse mémoire est alors un multiple de boundary, qui doit être une puissance de deux.
La fonction obsolète valloc() alloue size octets et renvoie un pointeur vers la mémoire allouée. L'adresse mémoire est alors un multiple de la taille de page. Cette fonction est équivalente à memalign(sysconf(_SC_PAGESIZE),size).
Pour ces trois routines, la mémoire n'est pas initialisée à zéro.
VALEUR RENVOYÉE | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
posix_memalign() renvoie zéro en cas de succès, ou l'une des valeurs d'erreurs répertoriées dans la section suivante en cas d'échec. Notez que errno n'est pas affectée par cette fonction.
ERREURS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
VERSIONS | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
CONFORMITÉ | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Entêtes | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Sur certains systèmes memalign() est déclaré dans <stdlib.h> au lieu de <malloc.h>.
Conformément à SUSv2, valloc() est déclaré dans <stdlib.h>. Libc4,5 et glibc le déclarent dans <malloc.h> et peut-être également dans <stdlib.h> (à savoir, si _GNU_SOURCE est définie, ou _BSD_SOURCE est définie, ou, pour glibc, si _XOPEN_SOURCE_EXTENDED est définie, ou, de manière équivalente, _XOPEN_SOURCE est définie à une valeur qui n'est pas plus petite que 500).
NOTES | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
posix_memalign() vérifie que alignment répond bien aux exigences détaillées ci-dessus. memalign() est susceptible de ne pas contrôler que le paramètre boundary est correct.
La norme POSIX impose que la mémoire obtenue par un appel à posix_memalign() puisse être libérée en utilisant free(3). Certains systèmes ne fournissent aucun moyen afin de libérer la mémoire allouée par memalign() ou valloc() (parce que l'on peut seulement passer comme paramètre à free(3) un pointeur obtenu via malloc(3), alors que, par exemple, memalign() pourrait appeler malloc(3) et aligner par la suite la valeur obtenue). La glibc permet de libérer la mémoire obtenue par n'importe laquelle de ces trois fonctions par appel à free(3).
La version glibc de malloc(3) renvoie toujours des adresses mémoire alignées sur 8 octets, ainsi ces routines ne sont nécessaires qu'en cas de besoin de valeurs d'alignement plus grandes.
VOIR AUSSI | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
TRADUCTION | Début | Précédent | Suivant | Sommaire | Préc.page.lue | Accueil |
Ce document est une traduction réalisée par Stéphan Rafin <stephan DOT rafin AT laposte DOT net> le 17 mai 2002 et révisée le 22 décembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 posix_memalign ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Sommaire | Début | Suivant | Sommaire | Préc.page.lue | Accueil |
Table des mots clés | Début | Suivant | Sommaire | Préc.page.lue | Accueil |