Select et Bad file descriptor

Select et Bad file descriptor - C - Programmation

Marsh Posté le 14-12-2005 à 18:50:42    

Bonjour,
 
j'ai select dans lequel j'ai deux sockets, jusque là tout va bien, je refait mon set à chaque débouclage de select et ça marche bien
 
j'ai rajouté dedans STDIN_FILENO pour lire des commandes sur le clavier
 
je le rajoute donc dans monset, jusque là tout va bien
 
je tappe ma commande, il a lit, effectue l'opération demandé
 
mais quand il doit refaire le set, il me dit :
 
select : Bad file descriptor
 
et je ne sais pas pourquoi vu que ça passe à la premiere creation du set
 
des idées ?
 
merci

Reply

Marsh Posté le 14-12-2005 à 18:50:42   

Reply

Marsh Posté le 14-12-2005 à 19:07:28    

EpoK a écrit :

j'ai select dans lequel j'ai deux sockets, jusque là tout va bien, je refait mon set à chaque débouclage de select et ça marche bien
j'ai rajouté dedans STDIN_FILENO pour lire des commandes sur le clavier
je le rajoute donc dans monset, jusque là tout va bien
je tappe ma commande, il a lit, effectue l'opération demandé
mais quand il doit refaire le set, il me dit :
select : Bad file descriptor
et je ne sais pas pourquoi vu que ça passe à la premiere creation du set
des idées ?


Poster ton code ?
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 14-12-2005 à 19:15:42    

Code :
  1. void read_socks() {
  2. if (FD_ISSET(s1,&socks)) {
  3. }
  4. if(FD_ISSET(s2, &socks)) {
  5. }
  6.   if(FD_ISSET(STDIN_FILENO, &socks)) {
  7.     shell();
  8.   }
  9. FD_ZERO(&socks);
  10.   FD_SET(STDIN_FILENO,&socks);
  11. FD_SET(s1,&socks);
  12. FD_SET(s2,&socks);
  13. highsock = max(max(s1,s2),STDIN_FILENO);
  14. main() {
  15.  build_select_list();
  16.       readsocks = select(highsock+1, &socks, (fd_set *) 0, (fd_set *) 0, &timeout);
  17.  if (readsocks < 0) {   // Cas d'erreur
  18.   > c'est là que j'ai l'erreur
  19.  }
  20. }


 
vala les parties intéressantes

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed