Bonjour,

Je développe une application sous linux qui permet d'envoyer et de recevoir des messages de taille variable sur la liaison série.
Pour cela, j'utilise la fonction poll pour attendre la réception de données suivi d'un read, et je boucle jusqu'à recevoir tout le buffer ou bien expiration du timeout (On trouve plusieurs exemple de prog en c sur le net)

Le problème est que parfois, je perds 1 ou plusieurs caractères et je n'arrive pas a savoir pourquoi.

J'ai essayé de remplacer le poll par un select et même un usleep avec un read non bloquant, cela ne change rien.

J'ajoute que mon programme fonctionne parfaitement sous VMWare. Peut être un problème de buffer avec le UART (la liaison série à une vitesse de 115200).

Qu'elle sont les différentes raisons pour lequelles on peut perdre un ou plusieurs caractères et comment les éliminer une à une ?