[MontelLUG] Impossibilità di utilizzare variabili statiche o globali
Samuele
samuele.zanin a tiscali.it
Dom 10 Apr 2016 21:07:52 CEST
Il 10/04/2016 20:55, cesco ha scritto:
> Riesci a produrre un esempio minimale (qualche decina di righe) che
> generi lo stesso problema e postarlo?
No, perché il pezzo di codice che fa il log, isolato in un programma a
parte funziona.
Il resto del programma senza le funzioni di log funziona.
Allego in ogni caso funzione di log:
void ScritturaLog(FILE **FileLog, int Operazione, char *Dati, int *Cont)
{
char NomeFile[30];
char Buffer[30];
time_t Secondi = time(NULL);
printf("Cont %d\n", *Cont);
if (Operazione == 0) //Scrittura
{
if (*FileLog != NULL)
{
wd.Kick();
if (*Cont >= 30000)
{
ScritturaLog(FileLog, 2, "", Cont);
ScritturaLog(FileLog, 1, "", Cont);
*Cont = 0;
}
strftime(Buffer, 30, "%Y%m%d%H%M%S;", localtime(&Secondi));
fprintf(*FileLog, Buffer);
fprintf(*FileLog, Dati);
wd.Kick();
(*Cont)++;
}
}
else if (Operazione == 1) //Apertura
{
//Provo ad aprire un file
strftime(NomeFile, 30, "/msc/Log/%Y%m%d%H%M%S.txt",
localtime(&Secondi));
printf("Nome file %s\n", NomeFile);
*FileLog = fopen(NomeFile, "a+");
if (*FileLog == NULL)
{
printf("Nuovo file %s\n", NomeFile);
*FileLog = fopen(NomeFile, "w");
if (*FileLog == NULL)
{
printf("Impossibile aprire file di log.\n");
}
}
else
printf("File aperto.\n");
}
else if (Operazione == 2)
{
if (*FileLog != NULL)
{
fclose(*FileLog);
*FileLog = NULL;
printf("Chiuso file di log.\n");
}
}
}
Maggiori informazioni sulla lista
montellug