Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C i funkcja ze zmienną liczbą argumentów w funkcji ze zmienną liczbą argumentów

Ostatnio zmodyfikowano 2018-11-21 18:49
Autor Wiadomość
aksen
Temat założony przez niniejszego użytkownika
C i funkcja ze zmienną liczbą argumentów w funkcji ze zmienną liczbą argumentów
» 2018-11-21 16:14:13
Witam

Potrzebuje oprogramować funkcję ze zmienną liczbą argumentów (save2log),
a następnie w tej funkcji wywołać następną funkcję ze zmienną
liczbą argumentów (fprintf lub syslog)

Robię to w ten sposób alby móc wypisywać logi na ekran/lub do pliku (funkcja fprintf)
lub do sysloga po zmianie funkcji na syslog.



Wszystko działa poprawnie kiedy użyję vfprintf
ale jak tu użyć fprintf? (a w przyszłosci syslog?)



C/C++
void save2log( const char * format,...)
{
    va_list ap;
    va_start( ap, format );
    vfprintf( stderr, format, ap );
    va_end( ap );
}


prototypy:
C/C++
void syslog( int, const char *,...);
int fprintf( FILE * stream, const char * format,...);
int vfprintf( FILE * stream, const char * format, va_list vlist );


PS.
Rozwiązaniem jest użycie funkcji:

C/C++
vsyslog( int priority, const char * format, va_list ap );

Chociaż pytanie pozostaje aktualne , czy da się tu użyć funkcji  fprintf lub syslog?
P-172908
pekfos
» 2018-11-21 18:49:28
Chociaż pytanie pozostaje aktualne , czy da się tu użyć funkcji  fprintf lub syslog?
W C nie da się tego zrobić w przenośny sposób w ogólnym przypadku. Jeśli z góry znasz typy i jest limit na ilość argumentów, możesz oprogramować wszystkie przypadki.
P-172911
« 1 »
  Strona 1 z 1