我试图用C编写自己的shell。chdir()
函数有问题。
有时我会显示一条错误消息,提示execvp: No such file or Directory
,而其他一些则什么也没有。目录始终相同。我正在尝试到达一个存在的目的地。
if(strcmp(str,"exit\n")!=0){
history_vector[i]=strdup(str);
if(strcmp(str,"cd\n")==0){
char *dir = strtok(str," ");
dir = strtok(NULL," ");
if(chdir(dir) == -1) {
perror("Cannot change directory");
}
else {
printf("Changing Directory .....\n");
}
}
最佳答案
如果您希望有一个参数,则字符串比较将永远不会成功。
与"cd\n"
一起使用的字符串strcmp()
不包含参数,因此,如果str
较长,则该字符串将不匹配。
关于c - 制作自己的shell-C-chdir(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27942176/