posix_memalign, comment savoir si il est present.... [C] - C - Programmation
Marsh Posté le 06-09-2004 à 21:07:34
ok merci...
mais dans ce cas pourquoi cela marche meme quand il est pas defini?
et n'y a t il pas un autre moyen car, si je fais un make en mettant gcc -Dmachin alors gcc pourrait toujours croire que posix_memalign existe et si il est pas present sur la machine => probleme lors du linkage mais bon tant pis, si il y a pas de moyen de le savoir alors je ferais avec...
Marsh Posté le 06-09-2004 à 21:23:13
non pas de problème au linkage. si tu dis à gcc de gueuler, s'il trouve pas cette fonction, ça compilera pas.
un moyen de savoir ? ben avec les autotools, ça ne fait rien d'autre que des tests avec de compiler le projet en entier/
Marsh Posté le 06-09-2004 à 23:25:59
oki re thanks
je vais me renseigner concernant les autotools et je vais aussi verifier que gcc gueule bien si il le faut
Marsh Posté le 06-09-2004 à 20:36:34
Bonjour a tous,
Voila j'ai un code qui peut tourner sur plusieurs machines (toutes sous unix/linux avec des versions de linux differentes ) et j'ai besoin de savoir si la fonction posix_memalign est disponible...
Donc pour cela je me suis dit je vais faire un man posix_memalign et la je remarque les indications suivantes qui me semblent repondre a ma question
SYNOPSIS
#define _XOPEN_SOURCE 600
#include <stdlib.h>
int posix_memalign(void **memptr, size_t alignment, size_t size);
et a la fin
Everybody agrees that posix_memalign() is declared in <stdlib.h>. In order to declare it, glibc needs _GNU_SOURCE defined, or _XOPEN_SOURCE defined to a value not less than 600.
Donc dans mon code j'ai rajouté
or il se trouves que la compilation avec gcc me sorts que ni _GNU_SOURCE ni _XOPEN_SOURCE ne sont definis (je le vois en faisant un gcc -E -dM )et pourtant si dans le code je fais un appel a posix_memalign la fonction est bien reconnue et marche nickel...
donc voila je voudrais savoir d'ou cela peut venir, sachant que en regardant dans stdlib.h je n'ai pas vu d'autre "moyen" qui permettent de definir posix_memalign ...
merci d'avance
GuiYom