linux编写程序实现ls -l命令,Linux编程——ls命令的实现

/*************************************************************************

> File Name: yzls.c

> Author: YeZe

> Mail:2295905420@qq.com

> Created Time: Wed 28 Jan 2015 11:04:15 UTC

************************************************************************/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#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 DIR *opendir(const char *dirname);

if(fp_dir==NULL)

{

perror("open");

exit(1);

}

int i=0;

while((pent[i]=readdir(fp_dir))!=NULL)

//#include #include

//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

show_info(pent[j]->d_name);

closedir(fp_dir);

return 0;

}