Я пытаюсь написать простую программу оболочки.Я принимаю пользовательский ввод через getline () и токенизирую эту строку - я сохраняю аргументы в char * arg [];execvp, однако, никогда не работает и всегда возвращает neg.число.
КОД:
char* arg[100];
int i = 0;
for (i; i<100; i++){
arg[i] = malloc(11); //each one has 11 bytes
}
tokenize();
i = 0;
for (i; i<100; i++){
printf("Arg %d: %s\n", i, arg[i]);
}
pid_t child = -5;
child = fork();
if (child == 0){
if (execvp(arg[0], arg) < 0){
printf("Failed.\n");
fflush(stdout);
}
}
ВЫПОЛНЕНИЕ:
ls
ВЫХОД:
Arg 0: ls
Arg 1:
Arg 2:
....
Failed.
Я не уверен, почему это происходит,Любые советы будут с благодарностью.