[SOLVED]Frage zu exec* in C
- 
					
					
					
					
 Hallo Ich möchte in einem C Programm eine andere Application(z.B foobar) starten mit 
 execl? oder execlp ? o. execle, o. execv, o. execvp?jedenfalls liegt mei Problem darin das, die gestartete Application ein Parameter 
 übergeben werden soll welches intern für foobar argc=1 (als ob es kein parameter hätte) und in argv[0] der Parameter steht statt wie sonst üblich der name der App foobar.Anders ausgedrückt Normalerweise wenn ich foobar starte: "foobar foo1" 
 ist:
 argc = 2 und argv[0]=foobar argv[1]=foo1wunsch: 
 argc = 1 und argv[0]=foo1Ich hab die Man page von exec* gelesen und konnte leider das Problem nicht selbst lösen. 
 
- 
					
					
					
					
 Du solltest deine Fragen verständlicher stellen.  Je nach exec* Variante erfolgt die Übergabe der Parameter unterschiedlich. In jedem Fall ist der 0te Parameter den du übergibst argv[0] also zB. execlp("foobar", "foo1", 0x0);siehe man: execlp 
 
- 
					
					
					
					
 Warum nicht system ("prog parm &"); 
 
- 
					
					
					
					
 Aus man execv: Die exec-Bibliotheksfunktionen ersetzen den aktuellen Programmcode im 
 Speicher mit neuem Programmcode.Willst du das wirklich? 
 
- 
					
					
					
					
 @knivil 
 daher vorher ein man: vforkpid_t pid = vfork(); if(pid == -1) { perror("vfork"); return 1; } else if(pid == 0) { if(execlp("foobar", "foo1", 0x0) == -1) { perror("execlp"); _exit(1); } }@pferdefreund 
 Mit system bekommt er nicht das hin, was er vorhat, wenn ich ihn richtig verstanden habe. Außerdem ist system keine tolle Funktion. Startet erst eine Shell, die dann den Parameter interpretiert.
 
- 
					
					
					
					
 Stellt sich nur noch die Frage, warum der Parameter nicht in argv[1] stehen darf. 
 
- 
					
					
					
					
 Vielen dank es funktioniert einwandfrei!