因此,我和我的搭档必须创建我们自己的shell,而cd应该在其中更改目录。我们已经编写并使用此代码来更改目录(如果可能的话),但是我们无法弄清楚在目录不存在的情况下如何解决零件错误的问题。
//check if cd was typed
if(strcmp(parsed_command->argv[0],"cd") == 0){
//if more than one argument -> error
if(parsed_command->argv[2]){
printf("Too many arguments!");
free(parsed_command);
return;
}
//read directory
char* dir = parsed_command->argv[1];
//execute change and check if error
if(chdir(dir) == -1){
perror("cd:");
}
//free memory
free(parsed_command);
return;
}