non avevi specificato..
sicuramente con open write read lseek e close puoi lavorarci..
(forse lseek no..)
dovrebbe funzionare anche con fopen ma credo che il miglior metodo sia con popen

man popen:
codice:
  #include <stdio.h>

  {
   FILE *report;

 if ((report = popen("/usr/bin/lpr","w")) != NULL)
 {
    /* stampiamo il report */
    int count;

    fprintf(report,"w i fagianazzi\n");
    for (count = 0; count < 20; ++count)
  fprintf(report,"%d linee del report stampate\n",count+1);

    /*  chiudiamo il report.. */
           fclose(report); /* o anche pclose() */
 }     else fprintf(stderr,"PorcaPigna:  popen() non riuscita su lpr\n");
   }