나는 내 자신의 쉘을 C로 작성하려고 시도했다. chdir()
함수에 문제가있다. 때로는 execvp: No such file or Directory
이라는 오류 메시지와 일부 다른 오류 메시지가 있습니다. 디렉토리는 항상 동일합니다. 존재하는 목적지에 도달하려고합니다.내 자신의 쉘 만들기 - C - chdir()
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");
}
}
'chdir'을 호출하기 전에 포인터에 무엇이 들어 있는지 확인 했습니까? –
프로그램 디버깅을 시도 했습니까? 'str'의 값은 무엇입니까? 'dir'의 가치는 무엇입니까? 어떤 오류가 발생합니까? –
아,'cd'가 인수를 가지고 있다면 비교할 입력 문자열은 ***이 아닌''cd \ n "'입니다. 방금 디버거를 사용하거나'str'의 내용을 출력했다면 아주 빨리 발견해야 할 것이 있습니다. –