Hi Community,
ich befasse mich gerade ein wenig mit der C Programmierung unter Linux. (Hoffe das ich das hier im C++ Forum posten darf.)
Ich versuche gerade den systemcall execve zu verstehen. Ich möchte gerne ein Programm starten mit übergabe von Argumenten und Environment Variablen.
Dazu habe ich folgendes versucht:
komischerweise liefer der systemcall mir einen fehler und die ausführung findet nicht statt. Weis jemand wieso?
Wenn ich in der Shell
eingebe wird das anstandslos akzeptiert.
Hab ich noch irgendwo etwas vielleicht vergessen?
Danke für eure Hilfe
Gruß Vertax
ich befasse mich gerade ein wenig mit der C Programmierung unter Linux. (Hoffe das ich das hier im C++ Forum posten darf.)
Ich versuche gerade den systemcall execve zu verstehen. Ich möchte gerne ein Programm starten mit übergabe von Argumenten und Environment Variablen.
Dazu habe ich folgendes versucht:
Code:
#include <unistd.h> #include <stdio.h> void main() { char *argv[] = { "xterm", "-bg", "green", 0 }; char *envp[] = { "PATH=/bin", 0 }; execve(argv[0], &argv[0], envp); fprintf(stderr, "Oops!\n"); }
Wenn ich in der Shell
Code:
xterm -bg green PATH=/bin
Hab ich noch irgendwo etwas vielleicht vergessen?
Danke für eure Hilfe
Gruß Vertax
Comment