#include <unistd.h>
#include <sys/wait.h>
#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>

#define EXIT(s) {fprintf(stderr, "%s",s); exit(0);}
#define USAGE(s) {fprintf(stderr, "%s Datei zum lesen\n",s); exit(0);}
#define MAX 8192

enum {ERROR=-1,SUCCESS};

int main(int argc, char **argv)
{
  FILE *pipe_writer, *file;
  char puffer[MAX];

  if(argc!=2)
    USAGE(argv[0]);

  if((file=fopen(argv[1], "r")) == NULL)
    EXIT("Fehler bei fopen.........\n");

  if(( pipe_writer=popen("./filter" ,"w")) == NULL)
    EXIT("Fehler bei popen...........\n");

  while(1)
    {
      if(fgets(puffer, MAX, file) == NULL)
         break;
      if(fputs(puffer, pipe_writer) == EOF)
         EXIT("Fehler bei fputs........\n");
    }
  pclose(pipe_writer);
}
