
#include <stdio.h>
#include <unistd.h>
#define BUF 8192

void an_den_drucker(char *text)
{
 FILE *p;
/*Pipe zum Tool lpr erstellen zum Schreiben auf lpr*/
 p=popen("lpr","w");
 if(p == NULL)
  {
    fprintf(stderr,"Konnte keine Pipe zu \'lpr\' erstellen!!\n");
    exit(0);
  }
 /*An den Drucker schreiben*/
 printf("Sende Auftrag an den Drucker......\n");
 fprintf(p, "%s", text);
 fflush(p);
 pclose(p);
}

int main()
{
  char puffer[BUF], inhalt[BUF];
  inhalt[0]='\0';

  printf("Bitte schreiben sie Ihren Text den sie Drucken wollen"
         " (Beenden : STRG+D)!\n-> ");
  while(fgets(puffer,BUF,stdin) != NULL){
    strcat(inhalt,puffer);
    printf("-> ");
   }
 an_den_drucker(inhalt);

 return 0;
}
