ls命令
ls简介
相关函数
源码
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
void do_ls(char []);
main(int ac , char *av[])
{
int a=0;
if(ac==1)
do_ls(".");//如果后面没有参数,默认当前目录
else
while(--ac){//计数器减1
printf("%d",a);
printf("%s:\n",* ++av);//输出将要遍历的目录, * ++av 先加再用,
do_ls(* av); //调用函数
a++;
}
}
void do_ls(char dirname[])//输入目录,输出这个目录下的文件
{
DIR * dir_ptr;//文件
struct dirent *direntp;//每一个文件都是一个dirent
//opendir,打开目录
if((dir_ptr = opendir(dirname)) == NULL ) //如果dir_ptr为空
fprintf(stderr,"ls1:cannot open %s\n",dirname);
else
{
//readdir 读取保存这个文件的dirent,读取后指针下移,下次读取就是下一个文件
while((direntp = readdir(dir_ptr))!=NULL)
printf("%s\n",direntp->d_name);
close(dir_ptr);
}
}
保存文件的结构体: