[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