Disposer d'un read non bloquant - C - Programmation
Marsh Posté le 13-03-2010 à 15:55:51
Merci, votre code m'a avancé en ce qui concerne la création d'un getch() sous Linux. En revanche, j'essaie également de créer ma propre fonction au comportement similaire à getch() sous Windows, dans un but d'acquérir un contrôle accru sur l'entrée clavier. Select, poll, passer en mode non canonique avec fcntl, tout ça m'est refusé sous Windows. Je cherche non-stop depuis hier soir, auriez-vous une idée?
Marsh Posté le 02-04-2010 à 00:07:22
Je sais que tu peux indiquer a un file-descriptor d'etre bloquand ou non via tcgetattr(fd, struct termios *w);
tu modifies les valeurs de ta structure termios:
Code :
|
ce code fonctionne sous FreeBSD. ça pourrai peut être fonctionner sous un Linux mais dodows c'est mort
Marsh Posté le 31-12-2004 à 13:56:57
Un problème récurrent évoqué sur le forum est le fameux read
bloquant, je vous propose d'y voir un peu plus clair.
Mettre un fd en mode non bloquant:
Ce programme n'est pas capable d'executer quelquechose à l'instant
ou la donnée est disponible, il va forcément faire le
sleep(timeout) en entier.
Il faut utiliser select ou mieux poll pour sortir dès qu'une donnée
est disponible...
Cadeau bonus, Spécial flex....