Bueno, siempre se puede intentar imprimir archivo > lpr, o añadirle un segundo FILE *impre, por ejemplo, abrirlo de output impre = fopen ("lpr", "w"); y en lugar de utilizar la función printf, utilizar:
putc (c, impre);
En realidad mi programa aceptaba 3 argumentos en la línea de órdenes, pero me pareció un poco largo para ponerlo entero, aunque siempre se le puede añadir un segundo argumento que se corresponda con el archivo de salida, y ahí pasarle lpr, o //servidor/impresora.
Ya te digo, es una "chapucilla" que me hice hace algún tiempo para poder imprimir en una impresora matricial desde un lenguaje que no me daba esa opción, todo lo que iba a las impresoras tenía que pasar por la elaboración de un "report" en modo gráfico, de modo que me grababa un archivo de texto y después llamaba al programa en C con una llamada al sistema, y funcionaba.
Salu2.