Otlet kellene - C macro
Moczik Gabor
progzmaster at freemail.hu
Sat Mar 13 12:20:00 CET 2004
Fuzesi Arnold wrote:
>>workaround fuggvennyel megoldani csak makroval. Ha erdekel valakit, leirom
>>miert, de lehet akar talalos kerdes is.
>
> Ja, erdekel!
Kivancsiak vagytok, mi? :-)
Tudtam :-)
Na, szoval PC-re keszulget egy program (hadrware tesztelgeto), ami igen
veszelyes dolgokat csinal, es minden ilyen lepest logolni kell. Hogy
konnyebb dolgom legyen a hibakat javitani, ugy akarok logolni, hogy a
logfajlbol tudjam hogy melyik forraskodban van a gigxer.
pelda:
---
fprintf(logstream,"%s (%d) %s",__FILE__,__LINE__,"Doing some CPU heating...");
fptintf(logstream,"%s (%d) %s: %dK",__FILE__,__LINE__,"Available memory",512);
//
do_some_dangerous_things();
//
fprintf(logstream, ...)
---
Nna, a __FILE__ es a __LINE__ ket olyan makro, amit a preprocesszor allit
elo (WatcomC) es az aktualis forraskod fileneve es az aktualis sor szama.
Ez az ami miatt nem lehet fuggvennyel, mert abban egyszer irom le, es mindig
a fuggveny torzsenek filenevet es soranak szamat irja ki. Amit meg
helyettesiteni kene az az fprintf(...). Lathato hogy az
fptintf(logstream,"%s (%d)",__FILE__,__LINE__) mindig ugyan az, nem kene
folyton leirogatni. De a formatstring vegehez jo lenne a sajat parametereket
formatumat odatenni, meg az fprintf vegere a tetszoleges szamu parametert.
Az elso problema nem gond, de a valtozo parameterek...
A ...-ot kellene kitalalni:
#define LOGF(my_format,...) fprintf(logstream,"%s
(%d)"#my_format,__FILE__,__LINE__,...)
--
((( Móczik Gábor )))--((( hu <- DOT <- freemail <- AT <- progzmaster )))
((( Debian unstable )))-((( Kernel 2.4.20 )))-((( Celeron466 / 128Mb )))
((( --> Vigyázat! Ön súlyos közlekedési balesetet szenvedett. <-- )))
((( --> Kívánja, hogy a légzsák felfúvódjon? <-- )))
More information about the Elektro
mailing list