Сделать оболочку с C
Я пытаюсь создать оболочку, используя C в качестве домашней работы, но мой execvp() не работает. это не exe ls. Я работаю на виртуальной машине Lubuntu 32 Это мой выход любой мой сообщение об ошибке!
if(pid==0){
printf("child");
char **tokens=tokenizer(hey)//hey is from fgets. tokenizer is fine
printer(tokens);
//execute ls
execvp( ls_args[0], ls_args);
//only get here if exec failed
perror("execv failed");
return 2; //return error status }
1 ответ
Твой третий аргумент (a[2]
) имеет символ новой строки в конце. ls
таким образом жалуется, что не может найти каталог с именем с одним символом новой строки в вашем домашнем каталоге. Исправьте синтаксический анализ вашей команды, чтобы не включать перевод строки.