Archiv verlassen und diese Seite im Standarddesign anzeigen : C: Wie Kommandozeilen nebenläufig ausführen?
Für Kommandozeilen vom C-Programm aus verwende ich bisher execl, aber das ist ja nicht nebenläufig. In der Man-Page dazu finde ich auch nichts nebenläufiges.
Bleibt nur ein fork und anschließend execl um Kommandozeilen nebenläufig auszuführen? :confused:
Das oder den Shell-Mechanismus fürs Ausführen im Hintergrund verwenden:
system("program &");
Das oder den Shell-Mechanismus fürs Ausführen im Hintergrund verwenden:
system("program &");
Funktioniert das? :confused:
Ich denke die Shell wartet auf program.
Naja, ich kann es ja mal mit nohup probieren.
also das hier funktioniert (sprich "end" wird sofort ausgegeben und das Programm terminiert, während das sleep im Hintergrund weiterläuft.)
#include <stdio.h>
int main() {
system("sleep 10 &");
printf("end\n");
return 0;
}
anda_skoa
13-07-2009, 14:55
fork und dann exec haben natürlich den Vorteil, dass du im Hauptprogramm die PID des anderen kennst und es daher auch kontrollieren (z.B. killen) kannst.
Ciao,
_
if ( !(pid=fork()) ) execYY(..);
if ( pid<0 ) error....
ist der standardweg
Ist mir bewusst, der TE fragte aber nach alternativen Wegen, dies zu realisieren (genauer gesagt, nach einem Weg ohne selber forken zu müssen -- meine Interpretation von Post #1).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.