#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>

struct dirent *readdir(DIR *dir);
DIR *opendir(const char *name);

int main(int argc,char *argv[])
{
    char *name;
    int i;
    DIR *dirp;
    struct dirent *entp;

    if (argc<2) {
	fprintf(stderr,"Usage\n\t%s <dir> ...\n",argv[0]);
	exit(1);
    }

    for (i=1; i<argc; i++) {
	name=argv[i];
	printf("\n======= %s =======\n",name);
	if (!(dirp=opendir(name))) {
	    perror("opendir");
	    continue;
	}	    
	while (entp=readdir(dirp)) {
	    printf("---------------------\n");
	    printf("inode:\t%x\toffset:\t%x\n",entp->d_ino,entp->d_off);
	    printf("reclen:\t%d\t type:\t%x\n",entp->d_reclen,entp->d_type);
	    printf("name:%s\n",entp->d_name);
	    printf("---------------------\n");
	}
    }

    if (dirp && closedir(dirp)) {
	perror("closedir");
    }
}