对编写 shell 很陌生。当我不提供任何额外参数时,我试图让“cd”进入主目录。
但是当我调用“cd”并且代码尝试调用时chdir(getenv("HOME"))
,它会显示一条错误消息"No such file or directory"
。
/*
Builtin function implementations.
*/
int cd(char **args){
if (args[1] == NULL){
printf("%s\n", getenv("HOME"));
if (chdir(getenv("HOME")) != 0) {
perror("dsh");
}
} else if (chdir(args[1]) != 0){
perror("dsh");
}
return 1;
}
getenv("HOME")
确实给出了正确的目录,即"/Users/oasisweng"
我想我做错了什么。我应该在哪里修?如果可能,请告诉我为什么。
我在这里阅读了 chdir man但如果我手动输入cd /Users/oasisweng
,那么它将起作用。
谢谢!!