Probleme de blockage avec ReadFile

Résolu
cs_Mick7
Messages postés
54
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
18 avril 2007
- 17 mai 2006 à 18:24
cs_Mick7
Messages postés
54
Date d'inscription
samedi 11 septembre 2004
Statut
Membre
Dernière intervention
18 avril 2007
- 17 mai 2006 à 19:27
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

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

17 mai 2006 à 19:27
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.
3