Ceci est mon fichier mman.h
inclus dans /usr/include/sys/
:
http://pastebin.com/FZpHwKMC
En quelque sorte, mmap()
semble être défini (et peut être utilisé avec les indicateurs 0 et la protection en lecture / écriture), mais pas MAP_ANON
ou MAP_ANONYMOUS
comme indiqué ci-dessous:
#include int a = MAP_ANON; /* comstack error */ int b = MAP_ANONYMOUS; /* also comstack error */
Je suis à court de ce qui pourrait être faux. Je comstack en utilisant ce makefile:
http://pastebin.com/R1V2edmf
EDIT: Il s’avère que la macro MAP_ANONYMOUS
est définie dans /usr/include/bits/mman.h
mais uniquement si __USE_MISC
est défini …
Toute aide serait formidable!
Si vous utilisez GCC, la raison commune est que vous n’utilisez pas de norme GNU C. Essayez de comstackr avec, par exemple, -std=gnu11
, et voyez si cela résout le problème.
Vous trouverez plus d’informations sur les normes linguistiques de GCC ici .
GCC fournit également une liste très exhaustive des extensions qu’elles fournissent ici .
En outre, il est MAP_ANONYMOUS
utiliser MAP_ANONYMOUS
au lieu de MAP_ANON
, car ce dernier est obsolète (selon man mmap
).