mycd命令

      今天写了自己的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命令是一个内置命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值