linux课上作业-带排序的ls显示命令
2011-10-31 17:33
337 查看
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
#include<string.h>
#include<malloc.h>
#define max 99
int sort_function(char *a,char *b)
{
return(strcmp(a,b));
}
void qsort(char *a[],int low,int high)
{
int i=low,j=high;
char *temp=a[low];
while(i<j)
{
while(i<j&&sort_function(temp,a[j])<=0)j--;//在数组的右端扫描
if(i<j){a[i]=a[j];i++;}
while(i<j&&sort_function(a[i],temp)<0)i++;//在数组左端扫描
if(i<j){a[j]=a[i];j--;}
}
a[i]=temp;
if(low<i) qsort(a,low,i-1);
if(i<high) qsort(a,j+1,high);
}
void do_ls(char *dirname)
{
DIR *dir_ptr,*dir_ptr1;
struct dirent *direntp,*direntp1;
int count = 0;
char *a[max],*p;
if((dir_ptr=opendir(dirname))==NULL)
fprintf(stderr,"ls1:cannot open %s\n",dirname);
else
{
while((direntp=readdir(dir_ptr))!=NULL)
{++count;
p=direntp->d_name;
a[count-1]=p;
}
qsort(a,0,count-1);
for(int i=0;i<count;i++)
{
printf("%s\n",a[i]);
}
closedir(dir_ptr);
}
}
int main(int ac,char *av[])
{
char a[]={"."};
if(ac==1)
do_ls(a);
else
while(--ac)
{
do_ls(*av);
}
}
该测试程序与源程序的不同点是会把隐藏文件也输出
#include<sys/types.h>
#include<dirent.h>
#include<string.h>
#include<malloc.h>
#define max 99
int sort_function(char *a,char *b)
{
return(strcmp(a,b));
}
void qsort(char *a[],int low,int high)
{
int i=low,j=high;
char *temp=a[low];
while(i<j)
{
while(i<j&&sort_function(temp,a[j])<=0)j--;//在数组的右端扫描
if(i<j){a[i]=a[j];i++;}
while(i<j&&sort_function(a[i],temp)<0)i++;//在数组左端扫描
if(i<j){a[j]=a[i];j--;}
}
a[i]=temp;
if(low<i) qsort(a,low,i-1);
if(i<high) qsort(a,j+1,high);
}
void do_ls(char *dirname)
{
DIR *dir_ptr,*dir_ptr1;
struct dirent *direntp,*direntp1;
int count = 0;
char *a[max],*p;
if((dir_ptr=opendir(dirname))==NULL)
fprintf(stderr,"ls1:cannot open %s\n",dirname);
else
{
while((direntp=readdir(dir_ptr))!=NULL)
{++count;
p=direntp->d_name;
a[count-1]=p;
}
qsort(a,0,count-1);
for(int i=0;i<count;i++)
{
printf("%s\n",a[i]);
}
closedir(dir_ptr);
}
}
int main(int ac,char *av[])
{
char a[]={"."};
if(ac==1)
do_ls(a);
else
while(--ac)
{
do_ls(*av);
}
}
该测试程序与源程序的不同点是会把隐藏文件也输出
相关文章推荐
- [linux_shell]linux下设置ls命令显示文件、文件夹颜色
- linux下 ls -l 命令显示结果解释
- linux中,ls -l命令显示的total的含义。
- 【linux】——linux ls命令参数及用法详解---linux显示目录内容命令
- ls命令显示Linux目录大小(zz)
- linux中ls命令:(显示指定目录里的文件及文件夹清单)
- linux命令(5)文件操作:ls命令、显示文件总个数
- 使用 ajax+php system函数,控制 linux执行 ls 命令,显示linux服务器上的文件
- linux ls命令不显示文件颜色的解决
- linux的ls命令详解(三)(几种常用的ls选项排序命令)
- linux ls命令参数及用法详解---linux显示目录内容命令
- Linux中显示系统中USB信息的lsusb命令
- Linux下的文件操作命令(二、匹配、排序及显示指定内容的命令)
- linux的ls命令详解(四)(几种常用的ls选项排序命令)
- Linux执行ls命令后不同文件类型显示的颜色一样
- Linux下ls命令显示符号链接权限为777的探索
- 如何在 Linux/Unix 的 Bash 中打开或关闭 ls 命令颜色显示 | Linux 中国
- linux,命令“ls -l”显示结果第二列的含义--来自11haiou 上善若水
- linux下 ls -l 命令显示结果每一列代表什么意思