0
printf(* arg); execvp(* arg,arg);
这里printf()语句打印值= ls.But当运行程序execvp给出没有这样的文件或目录。 否则如果(PID == 0){使用fork制作简单的unix外壳,execvp
printf(*arg);
execvp(*arg, arg);
char* error = strerror(errno);
printf("shell: %s: %s\n", arg[0], error);
return 0;
if(execvp(arg[0], arg)<0)
{
printf("***ERROR: execution failedn\n");
}
return 0;
}
你能告诉我们第二个printf的输出在哪里打印'arg [0]'?编写shell时常见的错误是忘记修改从用户读取的输入行末尾的换行符。 –