Bonjour
j’utilise la fonction void * mmap(…)
que je cast en data = (unsigned short *)mmap
Et dans la doc en cas d’erreur ca peut renvoyer -1 alors je me suis dis mince ca va pas marcher avec un unsigned short, mais en fait si, en faisant le test if (data == -1), je detecte bien les erreurs, et en faisant un printf de data j’ai bien -1 en cas d’erreur…
Pourquoi ? et est ce que c’est mauvais de le faire quand meme?
merci
hum.
C’est tout à fait normal:
if (data == -1)
-> data : unsigned short*, soit un pointeur sur un unsigned short.
Utilise MAP_FAILED plutôt (cf. www.opengroup.org… )
oui j’utilise bien MAP_FAILED, mais je disais -1 dans ce post pour simplifier car la question portait sur le fait qu’un unsigned short soit négatif.
merci
Ouaip. Donc en fait, non. Ce n’est jamais négatif : ça vaut -1 ou NULL je suppose (mais toutes les fonctions systèmes renvoient bêtement -1).
C’est juste que tu testes le pointeur, et non sa valeur.