【发布时间】:2013-05-04 17:12:31
【问题描述】:
我正在尝试使用chdir() 函数,但无法解决。
我正在阅读用户的信息,看看他是否在使用“cd”。 我总是得到一个错误。 我做错了什么?
代码:
int * status=0;
char * buf = 0;
char arguments[2048];
buf = getcwd(buf,PATH_MAX);
printf("%s >",buf);
fgets(arguments,2048,stdin);
if( strncmp(arguments,"quit",4)==0 ){
printf("Exit...\n");
break;
}
else if(strncmp(arguments,"cd",2)==0 ){
int ret;
printf("\nGOT = %s\n",(arguments+2));
ret = chdir ((arguments+2));
if(ret!=0){
perror("Error:");
}
}
【问题讨论】:
-
...那个错误究竟是什么?
-
GOT = /home 错误:: 没有这样的文件或目录
-
这将是输入末尾的换行符,请参阅我的答案。
-
顺便说一句,您可以使用
strace和gdb来调试您的问题。这比在这里问要快...... -
研究一些像
sash这样的小免费软件shell的源码