utilisation des giochannel
bonjour,
j'utilise un giochannel dans une application chat, dans le client écrit en Gtk, ceci afin d'éviter l'utilisation d'un thread qui me causait des problèmes.
voici ce que j'ai fait :
app -> channel = g_io_channel_unix_new(sock) ;
g_io_add_watch (app -> channel, G_IO_IN, (GIOFunc) Lire_socket,data) ;
Dans lire_socket :
fd = g_io_channel_unix_get_fd (app -> channel) ;
nb_lu = read (fd, buf,1024) ;
Ensuite j'écris le contenu dans un gtkTextview.
ça fonctionne mais j'ai eu des cas d'erreurs du type :
Gtk-CRITICAL **: gtk_text_buffer_emit_insert: assertion `g_utf8_validate (text, len, NULL)' failed
Alors je ne sais pas si la cause vient de l'utilisation du read, car j'ai vu qu'il y avait des fonction spéciales pour la lecture comme :
g_io_channel_read ()
mais j'ai rencontré des problèmes lors de son utilisation.
donc je voulais savoir si ma méthode est correcte et d'où pourrait venir cette erreur.
Merci.