Imprimir desde c

Hector
04 de Enero del 2005
La cuestión es la siguiente, necesito realizar un programa en C que coja la informacion de un fichero de texto y la envie a la impresora. Ya he realizado un programa que ejecutandolo desde linea de comandos funciona perfectamente. Os dejo el codigo al continuacion:
#include <stdio.h>
int main(int argc, char *argv[])
{
char *nombreFichero;
int caracter;
FILE *f;
nombreFichero = argv[1];
f = fopen(nombreFichero,"r");
if(f!=NULL)
{
printf("33[5i33E");
while((caracter = getc(f)) != -1)
{
if (caracter==10)
{
putc(13,stdout);
putc(10,stdout);
}
else
putc(caracter,stdout);
}
printf("33[4i");
}
fclose(f);
return 0;
}
Con la instruccion printf("33[5i33E"); redirigo la salida standar de pantalla al puerto paralelo (o eso creo, el caso es que me lo manda a impresora), y con la instruccion printf("33[4i"); lo dejo como estaba.

Hasta aquí va todo bien. El problema se presenta cuando tengo que ejecutar este programa desde un procedimiento almacenado, es decir, desde el procedimiento almacenado llamo a un shell de Unix y desde este llamo al programa. Este flujo hace que el programa se ejecute en backgraund, por lo tanto no esta definida la salida estandar stdout, y al hacer printf("33[5i33E"); no se realiza la rediccion de pantalla como se desearia.

¿Alguien sabe como hacer esto?

Gracias.