home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / diverses / text_cla / cat.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-23  |  1.1 KB  |  89 lines

  1. /* unix cat utility, types files, event with wildcard args */
  2.  
  3.  
  4.  
  5. #include <dos.h>
  6.  
  7. #include <stdio.h>
  8.  
  9.  
  10. int cat(char * pcName);
  11.  
  12.  
  13. #define MAX_BUF 255
  14.  
  15. char  szBreakStr[MAX_BUF + 1];
  16.  
  17. int   iBreak;
  18.  
  19.  
  20.  
  21.  
  22.  
  23. main(int argc,char * argv[])
  24. {
  25.  
  26.    struct find_t  stFind;
  27.  
  28.  
  29.    int  iStat;
  30.  
  31.    if(argc > 2)
  32.    {
  33.       iBreak = 1;
  34.       strcpy(szBreakStr,argv[2]);
  35.    }
  36.    else
  37.       iBreak = 0;
  38.  
  39.  
  40.    iStat = _dos_findfirst(argv[1],_A_NORMAL,&stFind);
  41.  
  42.    
  43.    while(iStat == 0)
  44.    {
  45.  
  46.       cat(stFind.name);
  47.  
  48.       iStat = _dos_findnext(&stFind);
  49.    }
  50.  
  51.  
  52. }
  53.  
  54.  
  55.  
  56. int cat(char * pcName)
  57. {
  58.    FILE * fp;
  59.    char  szBuffer[MAX_BUF + 1];
  60.    int   iLen;
  61.    char * pc;
  62.  
  63.    fp = fopen(pcName,"r");
  64.  
  65.    while(!feof(fp))
  66.    {
  67.       pc = fgets(szBuffer,MAX_BUF,fp);
  68.  
  69.       if(pc == NULL)
  70.          break;
  71.  
  72.       iLen = strlen(szBuffer);
  73.  
  74.       if(szBuffer[iLen -1] == '\n')
  75.          szBuffer[iLen -1] = '\0';
  76.  
  77.       printf("%s\n",szBuffer);
  78.  
  79.    }
  80.  
  81.    fclose(fp);
  82.  
  83.    if(iBreak)
  84.       printf("%s\n",szBreakStr);
  85.  
  86.    return(0);
  87. }
  88.  
  89.