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