J´ai décidé de remplacer fprintf dans mon programme par une fonction de logging customisé par moi-même afin de logger une éventuelle erreur.
En utilisant fwrite, je dois passer la longueur du pointeur char à écrire en fichier... Voici comment je procède:
--------------------
void logText(char txtToLog[100],bool bootUp)
{
// Si le paramètre true passe, on initialise le logger
if(bootUp == true)
{
// Création d´un pointeur de fichier, ouverture du fichier de log ( efface le vieux contenu)
FILE *filePointer = fopen("log.txt","w");
// Écrit un petit message indiquant que la "Console" ( c´est comme ça que j´appel mon logger ; )) est prête
fwrite("Console ready",sizeof(char),sizeof("Console ready"),filePointer);
// On ferme le fichier
fclose(filePointer);
}
// Si le paramètre false passe, on log un tableau char
else
{
// Petite boucle pour trouver la grosseur du tableau
int i = 0;
while(txtToLog[i] ! = NULL)
{
i++;
}
// On créé un pointeur char pour passer à la fonction fwrite
char *txtPointer = &[0];
// On ouvre le fichier en append
FILE *filePointer = fopen("log.txt","a");
// On fait un retour de chariot pour que tout ne soit pas sur la même ligne
fwrite("\n",sizeof(char),sizeof("\n"),filePointer)
;
// Écriture du contenu du pointeur
fwrite(txtPointer,sizeof(char),i,filePointer);
// On ferme le fichier
fclose(filePointer);
}
}
--------------------
Hors, la comparaison char ! = null créée un avertissement: [Warning] NULL used in arithmetic. Je m´y attendais bien mais j´ignore quelle autre constante utilisée pour ne pas avoir cette erreur... Suggestion ?