Probleme de blockage avec ReadFile [Résolu]

Signaler
Messages postés
54
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
18 avril 2007
-
Messages postés
54
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
18 avril 2007
-
Slt, j'essaye de faire un ReadFile sur le Handle d'un CreatePipe mais
le probleme est que quand ReadFile n'a rien a lire il se bloque. Je
voudrai donc mettre un Timeout pour qu'il se debloque au bout de
quelque milliseconde mais je ne sais pas du tout comment faire. si
quelqu'un pourrai m'expliquer.

1 réponse

Messages postés
54
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
18 avril 2007

c'est bon j'ai trouvé pour ceux que ca interesse


    while (1)

    {

       cin.getline(command, sizeof(command));

       Verreur = CreateProcess(NULL, command, NULL, NULL, TRUE, 0, 0, 0, &si, &pi);

       if ( Verreur )

       {

          while
(1)         
//ReadFile(hReadPipe, texte, BUFFER, &DwBytesRead, NULL);

          {

             DwBufferSize = GetFileSize (hReadPipe, NULL);

             if (DwBufferSize == 0)

             break;

             if (DwBufferSize > 4096)

             DwBufferSize = 4095;

            
ReadFile(hReadPipe, texte, DwBufferSize, &DwBytesRead, NULL);

             cout << texte;

             memset(&texte, 0, 4096);

          }

       }

       else cout << "processus inexistant\n"; 

    }


en faite il suffit de lire le nombre d'octet transmis par 
hReadPipe grave a la fonction GetFileSize et mettre cette valeur 
comme valeur  maxi que  ReadFile doit lire.