Write a program to implement ls command of UNIX with following options on DOS.
- ls -l to display long listing of files rowwise.
- ls -Q to display the filename in double quotes.
- ls -c to sort the files on last modification time of the files
Program:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
void main(){
setbuf(stdout,NULL);
DIR *dir;
struct dirent *ent;
char s[80], c[5], f[50], ar[2], ch[2];
while(1){
printf("\nAP:>");
gets(s);
if(strcmp(s,"exit")==0){
exit(0);
}
sscanf(s,"%s %s %s",&c,&ch,&f);
if(strcmp(c,"ls")!=0){
printf("Invalid Command");
}else if(strcmp(ch,"-l")==0){
if((dir = opendir(f))==NULL){
perror("Unable to open directory.");
exit(1);
}
while((ent=readdir(dir))!=NULL){
printf("\n%s",ent->d_name);
}
if(closedir(dir)!=0){
perror("Unable to close directory.");
}
}else if(strcmp(ch,"-Q")==0){
if((dir = opendir(f))==NULL){
perror("Unable to open directory.");
exit(1);
}
strcpy(ar,"''");
while((ent=readdir(dir)) != NULL){
printf("\n%s%s%s",ar,ent->d_name,ar);
}
if(closedir(dir)!=0){
perror("Unable to close directory.");
}
}
}
}
Comments
Post a Comment