Fonction bloquante et d'attente - C - Programmation
Marsh Posté le 08-01-2007 à 22:49:36
galaxed a écrit : Voila j'aurai besoin d'aide car je trouve pas le nom des fonctions qui m'interessent. Ensuite je cherche une fonction qui me permettent de déterminer combien de temps je veux attendre avant que mon programme continue. En vous remerciant d'avance. |
En gros, tu veux lancer une tache de saisie, mais pendant un temps limité, c'est ça ? Quelques threads avec une suspension devraient faire l'affaire
Code :
|
Marsh Posté le 08-01-2007 à 22:51:09
Emmanuel Delahaye a écrit : En gros, tu veux lancer une tache de saisie, mais pendant un temps limité, c'est ça ? Quelques threads avec une suspension devraient faire l'affaire
|
Je dis ça sans réflechir, mais un select avec timeout ça peut pas faire l'affaire ?
Marsh Posté le 08-01-2007 à 22:56:49
0x90 a écrit : Je dis ça sans réflechir, mais un select avec timeout ça peut pas faire l'affaire ? |
Sous Linux, oui. Sous Windows, non.
Marsh Posté le 08-01-2007 à 23:02:57
Emmanuel Delahaye a écrit : Sous Linux, oui. Sous Windows, non. |
pas d'équivalent à poll/select sous win ?
Marsh Posté le 08-01-2007 à 23:08:33
0x90 a écrit : pas d'équivalent à poll/select sous win ? |
select() existe, mais ne traite pas les I/O, uniquement les flux sockets. Sinon, il y a WaitForMultipleObjetct() ou un truc comme ça, mais c'est tordu à souhait. Du Microsoft pur et dur...
Marsh Posté le 08-01-2007 à 23:28:46
Oula vous me parlez chinois la ^^. Je vous explique concretement ce que je veux faire :
J'ai un déplacement d'une croix sur une matrice par exemple ( a la pacman ) et je veux que la croix avance dans une direction ( par exemple de gauche a droite tant que j'ai pas appuyez sur une touche ( disons q ). Quand j'appuie sur q je veut que la croix ait dorénavant un déplacement du haut vers le bas. Je peux pas utiliser getch ou scanf car sinon ca me bloque le programme tant que j'ai pas rentré de touches...
Donc je veux que mon programme tourne et que lorsque j'appuie sur une touche, le programme le détecte ( et comme ca je fous un getch apres pour récuperer la touche taper ).
Marsh Posté le 08-01-2007 à 23:44:52
galaxed a écrit : J'ai un déplacement d'une croix sur une matrice par exemple ( a la pacman ) et je veux que la croix avance dans une direction ( par exemple de gauche a droite tant que j'ai pas appuyez sur une touche ( disons q ). Quand j'appuie sur q je veut que la croix ait dorénavant un déplacement du haut vers le bas. Je peux pas utiliser getch ou scanf car sinon ca me bloque le programme tant que j'ai pas rentré de touches... |
DOS/Windows :
Tu peux protéger getch() par kbhit() :
Code :
|
Marsh Posté le 09-01-2007 à 10:50:32
je pensais aussi à kbhit() mais c'est pas portable S'il est sous Linux, c'est mort...
Marsh Posté le 09-01-2007 à 12:26:45
rufo a écrit : je pensais aussi à kbhit() mais c'est pas portable S'il est sous Linux, c'est mort... |
J'ai bien précisé "DOS/Windows"
Mais on sait simuler kbhit() et getch() sous Linux...
KBHIT.H
Code :
|
KBHIT.C
Code :
|
Marsh Posté le 08-01-2007 à 22:31:51
Bonjour bonjour,
Voila j'aurai besoin d'aide car je trouve pas le nom des fonctions qui m'interessent.
Pour commencer je cherche une fonction bloquante en gros je veux pouvoir faire :
Faire
{
..
}
tant que pas d'appuie sur une touche
Ensuite je cherche une fonction qui me permettent de déterminer combien de temps je veux attendre avant que mon programme continue.
En vous remerciant d'avance.