Linux系统下mybash中pwd和ls命令的实现
1、pwd的实现:
调用getcwd函数来实现
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
char dir_buff[512] = {0};
getcwd(dir_buff,512);
printf("%s\n",dir_buff);
exut(0);
}
2、ls命令的实现
ls的实现先调用函数getcwd获得当前目录,打开目录流opendir,读取目录流中的信息。关闭目录流。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<dirent.h>
#include<sys/type.h>
int main()
{
char dir_buff[512] = {0};
getcwd(dir_buff,512);//获取当前目录
DIR *p = opendir(dir_buff);//打开目录流
if(p == NULL)
{
perror("opendir err");
exit(1);
}
struct dirent *s = NULL;
//读取目录流中的信息,每条信息(struct dirent)对应一个文件
while((s = readdir(p)) != NULL)
{
if(strncmp (s->d_name,".",1)!=0)
printf("%s ",s->d_name);//打印文件名
}
printf("\n");
closedir(p);//关闭目录流
exit(0);
}
程序运行截图: