002
08.05.2008, 20:17 Uhr
0xdeadbeef
Gott (Operator)
|
Naja, einfach zum Starten eines anderen Programms, wenn du sonst nichts weiter machen willst, gibt es die exec*-Funktionen. Zum Beispiel
C++: |
#include <unistd.h>
int main(void) { /* Kehrt nie zurück */ execlp("java", "-jar", "Application.jar", NULL); }
|
...allerdings frage ich mich dann, warum du nicht einfach eine Batch-Datei bzw. ein Shell-Skript benutzt.
Wenn das Programm nach dem Aufruf des anderen Programms - oder während es läuft - noch etwas machen soll, dann sieht das - eine POSIX-Runtime vorausgesetzt - in etwa so aus:
C++: |
#include <sys/types.h> #include <sys/wait.h> #include <unistd.h>
int main() { pid_t pid; int status;
pid = fork(); // Neuen Prozess erstellen
if(pid == 0) { // Wir befinden uns im Kindprozess execlp("java", "-jar", "Application.jar", NULL); }
// Wir befinden uns im Vaterprozess, weil execlp nie zurückkehrt waitpid(pid, &status, 0); // <-- Warten, bis der Kindprozess zu Ende ist
// Rest hier }
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |