Einzelnen Beitrag anzeigen

A.Griffin

Registriert seit: 17. Feb 2017
94 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Frage zu C (Linux Programmierung)

  Alt 10. Mai 2017, 14:50
Ich habe das genutzt:

Code:
void
ErrorAdd (const char *str, ...)
{
    FILE *fpError;

    va_list ap;
    char logBuf[256];
    static char oldLogBuf[256];

    archiveFile(LOG_PATH "/" ERROR_LOG_NAME);

    va_start (ap, str);
    vsprintf (logBuf, str, ap);
    va_end (ap);

    if (strcmp(oldLogBuf, logBuf))
    {
        fpError = fopen(LOG_PATH "/" ERROR_LOG_NAME, "ab");
        fprintf(fpError, "%s: %s\r\n", getTimestamp(), logBuf);
        fclose(fpError);
    }
    memcpy(oldLogBuf, logBuf, strlen(logBuf));
}
Ich habe aber jetzt das Problem, dass das nicht threadsicher zu sein scheint und die Software abstürzt, wenn ErrorAdd in einem zweiten Thread genutzt wird. Was kann ich da machen?

@himitsu: WriteLn ist Delphi (Pascal)

Geändert von A.Griffin (10. Mai 2017 um 15:29 Uhr)
  Mit Zitat antworten Zitat