Сделать оболочку с C

Я пытаюсь создать оболочку, используя C в качестве домашней работы, но мой execvp() не работает. это не exe ls. Я работаю на виртуальной машине Lubuntu 32 Это мой выход любой мой сообщение об ошибке! http://prntscr.com/6um9xm

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 таким образом жалуется, что не может найти каталог с именем с одним символом новой строки в вашем домашнем каталоге. Исправьте синтаксический анализ вашей команды, чтобы не включать перевод строки.

Другие вопросы по тегам