Fonction select() sur l'entrée std - C - Programmation
Marsh Posté le 07-03-2005 à 18:35:39
GetStdHandle >> tu es apparement sous windows, peut-etre y a-t-il une solution en utilisant les events winsock (WSAEVENTS) avec les evenements de windows ?
Marsh Posté le 08-03-2005 à 12:43:38
J'ai resolu le problème en mettant un scanf dans un thread et le recv de la socket dans un autre.
Marsh Posté le 07-03-2005 à 14:06:23
Bonjour,
Dans un des mes programmes, je dois surveiller un ensemble de descripteurs (plusieurs sockets et l'entrée std). J'initialise donc le tout avec les bonnes macros (FD_ZERO, FD_SET... dont FD_SET(0, &readfs) pour l'entrée std) puis je teste l'ensemble des descripteurs (fd_set) avec la fonction select(). J'ai aucun soucis ... Malgré tout, mon code doit être portable et sous Windows, l'execution du programme me retourne l'erreur WSAENOTSOCK. J'ai donc testé sur chaque descripteur et je me suis aperçu que "0" ne correspondait pas à l'entrée std sous Windows.
J'ai donc utilisé GetStdHandle(STD_INPUT_HANDLE); qui retourne un HANDLE sur l'entrée std mais je ne sais pas comment l'utiliser avec FD_SET().
Des idées ?
Merci