Probleme die übergabe eines char [] [], um execvp
Ich bin versucht zu iterieren über eine Eingabe (das sind die Befehle und Argumente), teilen Sie die Eingaben in den einzelnen Saiten, dann pass, der Eingang in execvp()
.
Ich habe Schwierigkeiten, als execvp()
will a (char*, char*[])
als Argumente. Ich leite in (char*, char[][])
ich dachte, das war die gleiche Sache, aber es nicht zu mögen.
Ich würde ein char*[]
aber ich weiß nicht, wie groß die strings sind, bevor es läuft, so, dass ist der Grund, warum ich es nicht verwenden. So offensichtlich, wenn ich mit char*[]
, bekomme ich einen seg fault, wenn ich versuche, Zugriff auf Elemente der char*
's.
Hier ist ein Ausschnitt des Codes
//input
char *line = "echo hello there what is";
int count = 0;
//store arguments
char args[6][10];
int argCount = 0;
//store temp string from input
char temp[100];
int tempCount = 0;
//word(string) size
int wordSize = 0;
/*
Here I iterate over the input, storing each string I find in args
all the above variables help me do that.
*/
execvp(args[0], args);
printf("Error: It didnt work\n");
Hoffentlich, das ist klar und eine gültige Frage, lassen Sie mich wissen, wenn Sie wollen, mich zu fügen Sie den code von mir drehen die Eingabe in args
.