(gelöst) ReadFile auf leere Pipe -> Programm hängt



  • Hallo liebe Community 😉
    Die Kommunikation mit einem Child-Prozess macht mir Probleme. Also, ich habe eine exe, die ich aus meinem Programm heraus aufrufe, ihr über ihren STDIN was sage, und sie antwortet mir über ihren STDOUT. ( http://support.microsoft.com/kb/190351/en-us )
    Funktioniert auch wunderbar, nur wenn das Programm gar nichts antwortet, sondern einfach ohne Ausgabe beendet ( was es je nach Eingabe auch tun soll ), hängt sich mein Programm beim versuch von

    ReadFile(hPipeRead,...
    

    leider auf.
    Gibt es eine möglichkeit vorher nachzuschauen, ob in der Pipe etwas drin is, damit ich nur dann versuche daraus zu lesen? Hab schon viel gegoogelt, aber leider nix gefunden.
    Wär echt nett, wenn mir jemand helfen könnte 🙂
    dankeschön
    Dobi



  • so, habs gefunden ^^
    http://www.codeproject.com/threads/redir.asp

    WaitForSingleObject(hChildProcess,maximalewartezeitinms);
    	if (PeekNamedPipe(hPipeRead, NULL, 0, NULL, &nBytesAvailable, NULL))
    		if (nBytesAvailable)
    			ReadFile(hPipeRead,lpBuffer,255,&nBytesRead,NULL);
    

    funktioniert wunderbar. Vielen Dank für Eure Aufmerksamkeit für meinen Monolog. 😃


Anmelden zum Antworten