kindprozess auf hoher prioritaet UND auf terminierung warten?
-
hi,
ueberschrift sagts.
ich bin in der konsole.
bisher hab ich mit createprocess ein kind gestartet. diese kind schreibt in die konsole, aber vorher hat die shell noch die chance, das naechste prompt zu schreiben. dadurch sieht die ausgabe sehr vermurkst aus. ich tippe darauf, dass mein elternprozess nicht aufs kind wartet und gleich die ausfuehrung an die shell weitergibt, waehrend das kind in die gleiche konsole wie die shell schreibt.
waitforinputidle bringt nichts.ideen?
-
jemand ne idee?
-
Also hast de das so:
Start Konsole
Single Shell Input
Start Kind-Prozess
WarteAufKind
ShellInputOder wie soll das aussehen?
-
deinen pseudocode versteh ich leider nicht, aber ich geb mal eine pseudosession und reale session in der shell:
# reale session, wie es jetzt ist F:\Projects\run>run -pri realtime python -c "print 'foobar'" F:\Projects\run>foobar run -pri realtime python -c "print 'foobar'" F:\Projects\run>foobar echo baz baz F:\Projects\run># so will ich das haben F:\Projects\run>run -pri realtime python -c "print 'foobar'" foobar F:\Projects\run>run -pri realtime python -c "print 'foobar'" foobar F:\Projects\run>echo baz baz F:\Projects\run>die run.exe (meine kreation) wartet nicht auf den kindprozess, solls aber. ich MUSS aber die prozessprioritaet setzen koennen, wie schon oben spezifiziert.
so verstaendlich?
-
Du musst in Deinem Porzess den Kind Prozess starten und auf dessen Terminierung warten!
-
statt
run -pri realtime
nimm
start /wait
-
volkard, ich will keine neue konsole oeffnen.
selbst mit "start /b /wait" (/b fuer "keine neue konsole") kommt haargenau der selbe effekt... wie kann ich auf die terminierung warten?macht mal einer was gegen diesen troll namens "martin richter" bitte?
-
c.rackwitz schrieb:
macht mal einer was gegen diesen troll namens "martin richter" bitte?
Was ist mein Vergehen, dass ich bei Dir als Troll rangiere?
Mein Kommentar war so gemeint: Du erzeugst mit CreateProcess einen neuen Prozess. Wenn Du nun einfach mit WaitForSingleObject auf das Ende dieses Prozesses wartest müsste doch alles OK sein. Denn dadurch werden die Ausgagen in meinen Augen synchron.
-
Martin Richter schrieb:
WaitForSingleObject
das haettest du frueher sagen koennen, denn genau diese information fehlte mir. dein erster post in diesem thread hat schliesslich nur mein problem wiederholt...
ich muss noch etwas rumforschen, denn funktionieren tuts noch nicht. aber mal sehen...
edit: es funzt nun. danke!
kurzer code:
CreateProcess(...&processinfo); ... WaitForSingleObject(processinfo.hProcess, INFINITE);
-
bei mir geht folgendes prima:
main.bat:start /b /wait sub.bat echo fertigsub.bat:
dir /s \ exit