Logging (Threadsicher)



  • Hallo, ich habe gerade ein kleines Problem mit meiner Logging-Funktion. Die Funktion wird von überall im Programm gerufen. Soweit keine Problem. Nur kommt es manchmal zu einem Absturz wenn verschiedene Threads nahezu "zeitgleich" die Funktion rufen.

    void logd( const char *pFormat, ... )
    {
      va_list args;
      FILE *pFp = fopen( "log.txt", "a+b" );
      ...
      vfprintf( pFp, pFormat, args );
      ...
      fclose( pFp );
      ...
    };
    

    Kann mir jemand sagen wie ich dieses Problem lösen kann.
    Danke schonmal.



  • Mit ner Critical Section.

    Aber öffne doch nicht jedes mal die Datei neu...



  • Und wenn sich das ständig Öffnen nicht verhindern lässt, kannst du das Aufrufen deiner Loggin-Fkt. mit nem Mutex verriegeln. 😃


Anmelden zum Antworten