Write a program to implement cat command of UNIX on DOS.


Write a program to implement cat command of UNIX on DOS.


  • cat <filename> to display files on the screen.
  • cat < filename it is same as type command.
  • cat > filename it is same as copy command.


Program:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
void main(){
 setbuf(stdout,NULL);
 DIR *dir;
 struct dirent *ent;
 FILE *fp;
 char s[80],temp[80],c[5],f[50],a[2],p[2];
 while(1){
  printf("\nAP:>");
  gets(s);
  if(strcmp(s,"exit")==0){
   exit(0);
  }
  sscanf(s,"%s%s%s%s",c,a,f,p);
  printf("%s|%s|%s|%s",c,a,f,p);
  if(strcmp(c,"cat")!=0){
   printf("invalid command");
  }else if(strcmp(a,"<")==0 && strcmp(p,">")==0){
   if((dir=opendir(f))==NULL){
    perror("Unable to open direcotry.");
    exit(0);
   }
   while((ent= readdir(dir))!=NULL){
    printf("%s\n",ent->d_name);
   }
   if(closedir(dir)!=0){
    perror("Unable to close directory.");
   }
  }else if(strcmp(a,"<")==0){
   fp=fopen(f,"r");
   if(fp==NULL){
    printf("File Not Found.");
   }else{
    while(!feof(fp)){
     fgets(temp,80,fp);
     printf("%s",temp);
    }
   }
  }else if(strcmp(a,">")==0){
   fp=fopen(f,"w");
   if(fp==NULL){
    printf("File Not created.");
   }else{
    printf("\nEnter the content:");
    while(strlen(gets(temp))>0){
     fputs(temp,fp);
     fputs("\n",fp);
    }
    printf("\nOne file created;");
    fclose(fp);
   }
  }
 }
}

Post a Comment

Previous Post Next Post