mycd命令

来源:互联网 发布:linux display 详解 编辑:程序博客网 时间:2024/06/14 14:51

      今天写了自己的ls命令,完了以后突发奇想,想写一个自己的cd命令,查了以下还真的有函数来实现修改当前的工作目录,chdir函数。下面根据man手册给出这个函数的详细解释信息。
      函数描述:改变工作路径
      函数头文件和定义:#include <unistd.h>
                              int chdir(const char * path)
      函数参数描述:path表示要改变的路径。
      返回值描述:成功返回0,失败返回-1;
      下面贴出我的代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>char * cd_get_path(int argc,char** argv,char *path){        path = (char *)malloc(100);        if(argc ==1)        {                strcpy(path,"/home/shiwen/");        }        else        {                strcpy(path,argv[1]);        }}int main(int argc,char ** argv){        char *path;        int result;        path = (char *)malloc(100);        path = cd_get_path(argc,argv,path);        result = chdir(path);        if(result == -1)        {                printf("change dir error\n");                return -1;        }}

    运行完了以后发现,当前工作路径也没改变程序也没报错。查了资料发现了,chdir只能改变调用该函数的工作路径,并不能改变别的进程的工作路径,所以我们常用的cd命令是一个内置命令。

0 0