system() blockiert
-
Hallo,
ich würde gern aus einen C-Programm ein weiteres starten.
Im Augenblick verwende ich dafür die system() Funktion. Mein Problem ist, dass mein aufrufendes Programm solange blockiert, bis das aufgerufene Programm wieder beendet wurde.Kann mir jemand eine "einfache" Lösung nennen, um dieses Problem zu lösen.
Muss ich Threads verwenden oder gehts auch anders?Danke schonmal,
uzzman
-
Das blockiernde Warten ist so Absicht, damit der Return-Code abgefragt werden kann (ob es halt geklappt hat oder nicht).
Einfache Idee:
retval = system("newProgram &");
Wichtig ist es also, dass Programm im Hintergrund zu starten, allerdings kann man dann weder den Returncode noch ein Ergebnis (wie z.B. Inhalt einer Datei) abfragen. Langt das als Idee???
-
@jox: das Funktioniert so aber IMHO nur auf UNICES und Derivaten.
Greetz, Swordfish
-
Was meinst du mit im Hintegrund starten?
Habe jetzt folgendes eingefügt
retval = system("C:\test.exe &");
Aber geholfen hat es nicht...
-
uzzman1982 schrieb:
retval = system("C:\test.exe &");
... sieht verdammt aus, wie Windows. Da geht das so nicht, wie Swordfish ja richtig sagt. Bei Windows kann ich Dir leider nicht helfen
-
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Mit den spawn Funktionen aus der CRT kannst Du angeben ob Du waten möchtest oder nicht.
-
uzzman1982 schrieb:
Was meinst du mit im Hintegrund starten?
Habe jetzt folgendes eingefügtretval = system("C:\test.exe &");
Aber geholfen hat es nicht...
vielleicht geht
retval = system("start C:\test.exe");