home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / CMDS / smallutils.t.Z / smallutils.t / fc.c < prev    next >
C/C++ Source or Header  |  1990-07-19  |  2KB  |  92 lines

  1. #include <stdio.h>
  2. #include <strings.h>
  3.  
  4. main(argc,argv)
  5. int argc;
  6. char *argv[];
  7. {
  8.     /* fc - floppy chopper - cuts files up into 350,000 byte segments
  9.        for easy storage on 360k floppies */
  10.        
  11.       FILE *infile, *outfile;
  12.       static char filnam[40],filnam2[40];
  13.       int counter;
  14.       char c;
  15.       if (argc==1)
  16.       {
  17.           infile=stdin;
  18.           strcpy(filnam,"stdin\0");
  19.       }
  20.       else
  21.       if (argv[1][0]=='-')
  22.       {
  23.           if (argv[1][1]!='?')
  24.           {
  25.               fprintf(stderr,"Invalid argument %s!\n\n",argv[1]);
  26.               exit(1);
  27.           }
  28.           else
  29.           { /* print help */
  30.               printf("Syntax:   fc [<file>]\n");
  31.               printf("Function: Takes first 350,000 bytes of a file or stdin\n");
  32.               printf("          and puts in one file and puts remaining bytes\n");
  33.               printf("          in another file for easily putting large files\n");
  34.               printf("          on 360k media.\n");
  35.               printf("Options:  none\n\n");
  36.               exit(0);
  37.           }
  38.       }
  39.     else
  40.     {
  41.         infile=fopen(argv[1],"r");
  42.         strcpy(filnam,argv[1]);
  43.         if (infile==NULL)
  44.         {
  45.             fprintf (stderr,"Error opening file %s!\n\n",argv[1]);
  46.             exit(1);
  47.         }
  48.     }
  49.     /* ok file is open lets start */
  50.     strcpy(filnam2,filnam);
  51.     strcat(filnam,"_1");
  52.     outfile=fopen(filnam,"w");
  53.     if (outfile==NULL)
  54.     {
  55.         fprintf(stderr,"Error creating output file %s !\n",filnam);
  56.         exit(1);
  57.     }    
  58.     for (counter=350000;counter--;)
  59.     {
  60.             c=fgetc(infile);
  61.             if (c== EOF)
  62.             {
  63.             printf("Oops! File was already less than 350,000 bytes!\n");
  64.             printf("That's ok. Now you have two copies of the same\n");
  65.             printf("file. \n");
  66.             fclose(outfile);
  67.             if (argc>1)
  68.                 fclose(infile);
  69.             exit(0);
  70.             }
  71.             fwrite(&c,1,1,outfile);
  72.         
  73.     }
  74.     fclose (outfile);
  75.     strcat(filnam2,"_2");
  76.     outfile=fopen(filnam2,"w");
  77.     if (outfile==NULL)
  78.     {
  79.         fprintf(stderr,"Blarg! Can't open second file %s!\n",filnam2);
  80.         exit(1);
  81.     }
  82.     while (!(c=fgetc(infile)==EOF))
  83.     {
  84.         fwrite(&c,1,1,outfile);
  85.     }
  86.     fclose(outfile);
  87.     if (argc>1)
  88.         fclose(infile);
  89.     printf("All done! Files are %s and %s.\n\n",filnam,filnam2);
  90.     exit(0);
  91. }
  92.