当前位置: 技术问答>linux和unix
用chdir()写一函数实现cd()功能
来源: 互联网 发布时间:2016-08-20
本文导语: 如题 | 你需要用到一系列函数。 目录其实也是一个文件,内容就是里面的文件名等信息。只不过不能用一般的fopen函数来打开。 opendir() readdir() closedir() chdir() 怎么用的话google一下吧。...
如题
|
你需要用到一系列函数。
目录其实也是一个文件,内容就是里面的文件名等信息。只不过不能用一般的fopen函数来打开。
opendir()
readdir()
closedir()
chdir()
怎么用的话google一下吧。
目录其实也是一个文件,内容就是里面的文件名等信息。只不过不能用一般的fopen函数来打开。
opendir()
readdir()
closedir()
chdir()
怎么用的话google一下吧。
|
#include
#include
#include
#include
#include
#include
#include
#include
int analyseCmd(char *p);
int main(void)
{
char cmd[1001];
char result[101];
while(1)
{
memset(cmd, 0, 1000);
printf("ysh>");
fgets(cmd, 1000, stdin);
cmd[strlen(cmd)-1]=0;
if(analyseCmd(cmd)==1)
{
if(chdir(cmd + 3) != 0) {//从3开始就是转换工作空间的路径
printf("chdir(%s) error!%sn", cmd + 3, strerror(errno));
}
printf("I'm working in '%s' nown", getcwd(result, 100));
}
else if(analyseCmd(cmd)==2)
break;
else
printf("Bad command, try again!");
break;
}
return 0;
}
int analyseCmd(char *p)
{
if(!strncasecmp(p,"cd",2))
return 1;
if(!strncasecmp(p,"exit",2))
return 2;
else return 0;
}
#include
#include
#include
#include
#include
#include
#include
int analyseCmd(char *p);
int main(void)
{
char cmd[1001];
char result[101];
while(1)
{
memset(cmd, 0, 1000);
printf("ysh>");
fgets(cmd, 1000, stdin);
cmd[strlen(cmd)-1]=0;
if(analyseCmd(cmd)==1)
{
if(chdir(cmd + 3) != 0) {//从3开始就是转换工作空间的路径
printf("chdir(%s) error!%sn", cmd + 3, strerror(errno));
}
printf("I'm working in '%s' nown", getcwd(result, 100));
}
else if(analyseCmd(cmd)==2)
break;
else
printf("Bad command, try again!");
break;
}
return 0;
}
int analyseCmd(char *p)
{
if(!strncasecmp(p,"cd",2))
return 1;
if(!strncasecmp(p,"exit",2))
return 2;
else return 0;
}