Answer:
See explaination
Explanation:
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <errno.h>
extern int errno;
int main(int argc, char const *argv[])
{
DIR *dir;
struct dirent *ent;
int i;
if ( argc != 2 )
{
printf( "usage: %s filename", argv[0] );
}
else
{
for(i=1;i<argc;i++)
{
printf("\n Name of directory no. %d %s \n ",i,argv[1]);
if ((dir = opendir (argv[i])) != NULL)
{
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL) {
switch(ent->d_type)
{
case DT_REG:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Regular File");
break;
case DT_DIR:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Directory");
break;
case DT_UNKNOWN:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Unknown File Type");
break;
case DT_BLK:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Block Device");
break;
case DT_LNK:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Symbolic Link");
break;
case DT_CHR:
printf ("%d \t %s \t --> %s\n",i, ent->d_name,"Character Device");
break;
}
i++;
}
printf ("\n");
closedir (dir);
}
else
{
perror("Error!: ");
//printf("errno = %d.\n", errno);
}
}
}
return 0;
}