用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;
}