Auszug aus crypto.c

  • Hallo Koder!

    In dieser C-Datei muß mir mal jemand etwas erklären:

    http://www.at.gnucash.org/mirrors/freeha…common/crypto.c


    Die Funktion ist mir zwar aus Sicht meines menschlichen Verständnis klar, aber aus sicht des Compilers ist mir der Fett-markierte Teil nicht klar. Der fett-markierte Teil ist doch keine log-Berechnung.....oder?

    static void
    crypto_log_errors(int severity, const char *doing)
    {
    int err;
    const char *msg, *lib, *func;
    while ((err = ERR_get_error()) != 0) {
    msg = (const char*)ERR_reason_error_string(err);
    lib = (const char*)ERR_lib_error_string(err);
    func = (const char*)ERR_func_error_string(err);
    if (!msg) msg = "(null)";
    <b>if (doing) {
    log(severity, "crypto error while %s: %s (in %s:%s)", doing, msg, lib,func);
    } else {
    log(severity, "crypto error: %s (in %s:%s)", msg, lib, func);</b>
    }
    }
    }

  • Dieses Forum unterstützt keine HTML-Tags :) du musst es in eckigen Klammern machen (siehe http://www.informatik-forum.at/misc.php?do=bbcode).

    Ich glaub du hast da was verwechselt bei der Bedeutung des Namens "log". Das bezieht sich nicht auf "Logarithmus", sondern "Protokoll".

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Versteh nicht ganz was du meinst. Es ist normalerweise sehr klug, den Compiler die Syntaxchecks machen zu lassen, sonst geht nämlich gar nix.

    Der Funktionsname ist ganz ok, bedeutet "log_errors" ("Fehler protokollieren") im modul "crypto".

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Nein... ich hab mich wohl falsch ausgedrückt.
    Ich nehme vorweg das ich math.h einbaue und eine logarithmetisch Berechnung durchführe. Ich finde es nicht schlau eine für ein Objekt "interne" Funktion nach einer ANSI-C Funktion zu benennen.

    Kannst du mir deinen Such-Vorgang posten...ich finde nichts das die Funktion [bl]og[/b](int, const char*) definiert.

    Etwas auf diese Art suche ich :
    #define log_msg(int, const char*) log(int, const char*)

  • Aso ja, da hast du recht.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Das dürfte wohl was anderes sein, nachdem der Link C++-Klassen beschreibt, dein Code im 1. Posting aber C ist.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Ja das hab ich wohl übersehen... so schön war mein Traum als ich mir sicher war die Antwort in der Hand zu halten. Woher kommt also die Funktion?


    Roger Dingledine und Matej Pfajfar definierten sie in der, wahrscheinlich von ihnen, editierten log.h worauf der folgende Link verweist:

    http://tor.eff.org/svn/trunk/src/common/log.h

    ...
    /* Outputs a message to stdout */
    void _log(int severity, uint32_t domain, const char *format, ...)
    CHECK_PRINTF(3,4);
    #define log _log /* hack it so we don't conflict with log() as much */
    ...


    Danke

  • [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!