我正在尝试使用C作为家庭作业创建一个shell,但我的execvp()不起作用。它没有执行ls。我在虚拟机lubuntu 32工作 我的outpout任何我的错误消息!
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 }
答案 0 :(得分:1)
你的第三个参数(a[2]
)最后有一个换行符。 ls
因此抱怨它无法在您的主目录下找到以单个换行符命名的目录。修复命令解析以不包括换行符。