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?
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?
Das oder den Shell-Mechanismus fürs Ausführen im Hintergrund verwenden:Code:system("program &");
also das hier funktioniert (sprich "end" wird sofort ausgegeben und das Programm terminiert, während das sleep im Hintergrund weiterläuft.)
Code:#include <stdio.h> int main() { system("sleep 10 &"); printf("end\n"); return 0; }
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,
_
Qt/KDE Entwickler
Debian Benutzer
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).
Lesezeichen