首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

用chdir()写一函数实现cd()功能解决方法

2012-03-08 
用chdir()写一函数实现cd()功能如题[解决办法]你需要用到一系列函数。目录其实也是一个文件,内容就是里面的

用chdir()写一函数实现cd()功能
如题

[解决办法]
你需要用到一系列函数。
目录其实也是一个文件,内容就是里面的文件名等信息。只不过不能用一般的fopen函数来打开。
opendir()
readdir()
closedir() 
chdir()

怎么用的话google一下吧。
[解决办法]
#include<stdio.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/stat.h>
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!%s\n", cmd + 3, strerror(errno));
}
printf("I'm working in '%s' now\n", 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;
}

热点排行