1

salut, quelqu'un voit un problème dans ma macro, là ?

#     include <stdio.h>
#     include <unistd.h>
#     define TRACE { \
         if ( access("/huhu/debug.txt", F_OK) == 0 ) { \
            FILE* fpQ= fopen("/huhu/debug.txt", "at") ; \
            if ( fpQ != NULL ) { \
               fprintf(fpQ, "DQ:%s();%d\n", __FUNCTION__, __LINE__) ; \
               fclose(fpQ) ; \
            } \
         } \
      }


confus

merci d'avance cheeky

(ça compile partout sauf dans mon projet réel cry)

2

(mm, j'ai viré le fflush, mais ce n'est pas le problème tongue)

3

Pen^2 (./1) :
quelqu'un voit un problème dans ma macro, là ?

Non.






(hum désolé)

TRACE est courant comme symbole, il serait pas défini ailleurs ? C'est si évident que tu l'aurais vu j'imagine ? J'allais parler de l'inclusion de stdio.h, mais apparemment tu l'as rajouté dans l'edit.

Et... c'est quoi l'erreur ?

4

grin

J'avais renommé TRACE pour le post, c'est pas le vrai nom de la macro en fait cheeky
Merci de ta suggestion en tout cas (l'erreur était bien sur le access(), pas sur le fopen())

Bon en fait j'ai trouvé : une variable access est définie un peu plus haut dans la fonction où j'appelle la macro gol
D'où conflit avec la fonction sad

(pour info, l'erreur, c'était un truc du genre : "erreur: no match for call to '(TypeVarAccess) (const char [25], int)')


PS : si quelqu'un sait comment résoudre ce genre de conflit... Peut-être avec les namespaces ?

5

bon, ça fonctionne avec ::access smile
#     include <stdio.h>
#     include <unistd.h>
#     define TRACE { \
         if ( ::access("/huhu/debug.txt", F_OK) == 0 ) { \
            FILE* fpQ= fopen("/huhu/debug.txt", "at") ; \
            if ( fpQ != NULL ) { \
               fprintf(fpQ, "DQ:%s();%d\n", __FUNCTION__, __LINE__) ; \
               fclose(fpQ) ; \
            } \
         } \
      }

Merci ! smile

6

C'est du C++, ::, non?
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

7

Si trigni (l'appli est plus ou moins en cpp en fait, mais elle avait été débutée en C à l'époque. Je vous laisse imaginer grin)