[C++/POSIX] Andere Programme ausführen

Hiho,

ich möchte in einem c++ programm ein anderes programm aufrufen … tja, aus c bin ich so command gewöhnt :wink: … was gibts da in c++ für möglichkeiten ?

gruss

berni

exec? spawn? ShellExecute
Hi Florian,

du kannst programme mit

exec?(…), ShellExecute(…) und spawn?(…) aufrufen.
[Für das ‚?‘ kommt noch ein Buchstabe [z.B. ‚l‘], sieh in der Hilfe nach]

exec? kehrt nicht mehr zu deinem Programm zurück, d.h. alles was nach dem Aufruf steht, ist vergeblich geschrieben.

Shellexecute weiß ich gerade nicht mehr so genau, aber ich habe es nicht benutzt, irgendwas war da nicht so gut.

Ich favorisiere ja spawnl , das einen neuen Prozess erzeugt und zu deinem Programm zurückkehrt; wahlweise nach Beendigung des Programms oder parallel. (mit wait(…) / cwait(…)) kannst zusätzlich du auf den Prozess warten.

spawn? liefert dir die Job-ID wenn es klappt (brauchst du z.B. für cwait), wenn der Aufruf irgendwie schief ging, gibt’s ne -1.

Hoffe, das half erst mal, wenn du mehr wissen willst (zu den Parametern??), sag bescheid.

Bis dann,
Jan

hi jan,

merci für den tip, funzt alles gut … ich hab nur ein kleines Frontend für windows zu zwei kleinen POSIX-progrämmchen geschrieben … (netzwerk-stuff … ich hasse winsock :wink:

schlussendlich hab ichs so gemacht:

spawnl(P_DETACH, „dial.exe“, „dial.exe“, NULL);

gruss

Flöru