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)