對於編寫shell是一個相當新的嘗試,當我不給出任何額外的參數時,我試圖讓「cd」進入主目錄。chdir(getenv(「HOME」)提示錯誤「沒有這樣的文件或目錄」
但是,當我所謂的「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人here但如果我手動輸入cd /Users/oasisweng
,那麼它將工作。
謝謝!
該代碼沒有問題。考慮發佈[MCVE](http://stackoverflow.com/help/mcve)。 – user3386109
你的代碼是否有一個'chroot'調用? –
什麼是'args'? –