ViP.at - Dateinen "ohne" Speicher splitten

Der folgende Source erwartet das Inputfile und 2 Outputfiles sowie den Splitpunkt in Bytes. Dieses Programm braucht recht lange, da die Bytes einzeln bearbeitet werden.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  FILE *in, *out1, *out2;
  unsigned long cut, i;
  int a;

  if (argc  <  4)
  {
    printf("split by Thomas Dorn 1995\nUsage: split source dest1 dest2 splitpoint\n");
    return(0);
  }

  cut = atol(argv[4]);
  printf("cutpoint: %d\n",cut);
  if (cut  <  1)
  {
    printf("Verarschen kannst jemand anders!\n");
    return(1);
  }

  if (in = fopen(argv[1],"rb"))
  {
    if (out1 = fopen(argv[2],"wb"))
    {
      if (out2 = fopen(argv[3],"wb"))
      {
        for (i=0;i < cut;i++)
        {
          a = fgetc(in);
          fputc(a,out1);
          if (feof(in))
            i = cut;   /* Beenden */
        }
        while (!feof(in))   /* 2.ter teil */
        {
          a = fgetc(in);
          fputc(a,out2);
        }

        fclose(out2);
      }
      else
      {
        printf("Couldn't open Outputfile %s\n", argv[3]);
      }
      fclose(out1);
    }
    else
    {
      printf("Couldn't open Outputfile %s\n", argv[2]);
    }
    fclose(in);
  }
  else
  {
    printf("Couldn't open Inputfile %s\n", argv[1]);
  }
}

© 1995 by Thomas Dorn
Design by comdes