Bonjour,
Je cherche aujourd'hui à faire un fichier de log.
Le but du jeu est que mes lib puissent renvoyer leurs messages d'erreurs vers un fichier et que mon appli principale affiche ce fichier dans une text area.

Voilà ce que j'ai fais:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
	GIOChannel *pFichierLog;
	GError *pErr = NULL;
	pFichierLog = g_io_channel_new_file("./IHM/test","r",&pErr);
	g_io_add_watch(pFichierLog,G_IO_IN,FonctionUpdateLog,NULL);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
// LOG
gboolean FonctionUpdateLog(GIOChannel *gio,GIOCondition condition, gpointer data)
{
	gchar * msg;
	GError *pErr = NULL;
	gsize len;
	g_io_channel_read_line(gio, &msg, &len, NULL, &pErr);
	printf("log?");
}
Je voulais donc que la fonction FonctionUpdateLog ne soit appelée qu'en cas de changement sur le fichier /IHM/test mais là elle est appeler tout le temps même quand /IHM/test est vide!
J'ai mal compris la fonction je pense.
Vous connaissez une autre façon de faire?
Si je met un update de ma textArea à la place de mon printf("log?") ça rafraichira ma fenêtre mais ça va spammer comme pas possible, niveau performance ça craint...
Merci!