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
Rejoignez-nous