本文共 921 字,大约阅读时间需要 3 分钟。
今天写了自己的ls命令,完了以后突发奇想,想写一个自己的cd命令,查了以下还真的有函数来实现修改当前的工作目录,chdir函数。下面根据man手册给出这个函数的详细解释信息。
函数描述:改变工作路径 函数头文件和定义:#include <unistd.h>
int chdir(const char * path)
函数参数描述:path表示要改变的路径。 返回值描述:成功返回0,失败返回-1; 下面贴出我的代码: #include#include #include #include 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命令是一个内置命令。
转载地址:http://spbsi.baihongyu.com/