/*************************************************************************
> File Name: yzls.c
> Created Time: Wed 28 Jan 2015 11:04:15 UTC
************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<dirent.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<pwd.h>
#include<grp.h>
#include<time.h>
#define N 100
void mode_to_str(mode_t md,char *buf);
void show_info(char *);
int cmp(const void *left,const void *right);
int main(int argc, char *argv[])
{
DIR *fp_dir;
struct dirent *pent[N];
fp_dir=opendir(argv[1]);
//#include <dirent.h> DIR *opendir(const char *dirname);
if(fp_dir==NULL)
{
perror("open");
exit(1);
}
int i=0;
while((pent[i]=readdir(fp_dir))!=NULL)
//#include <sys/types.h>#include <dirent.h>
//struct dirent *readdir(DIR *dir),the defination of 'dirent' is in readdir
{ i++; }
qsort(pent,i,sizeof(struct dirent*),cmp);//sort the path by name
int j;
for(j=0;j<i;j++)
show_info(pent[j]->d_name);
closedir(fp_dir);
return 0;
}
Linux编程——ls命令的实现
最新推荐文章于 2022-10-02 14:21:11 发布