Existe un método correcto en teoria e inútil en la práctica, y otro que es ineficiente en teoria y muy práctico.
El primero: Mírate la documentación de las librerías I/O. En casi todas las versiones encontrarás writeport(port, data); o algo equivalente. El parámetro port suele ser un número que identificaría el puerto de impresora. Averiguar el puerto y formatear los datos es trabajo para tí. Si trabajas sobre Windows, el sistema podría darte el puerto y los drivers formatear los datos, pero jamás lohe probado.
El segundo método: Testeado sobre PC-DOS 3.30 y MS-DOS 6.20, probablemente funciona en cualquier DOS:
FILE *f=fopen("PRN");
fprintf(f, datos);
con este método pude enviar señales, por el puerto paralelo, a un circuito que había conectado. El circuito y el programa fueron un trabajo sobre control por ordenador, y permitían controlar dos motores a través de la command line del DOS. Teóricamente, el primer método es más correcto (y es el que usé al principio). Como la teoria falló (Ley de Murphy) la mandé a la ¬|#+&@ y opté por el sistema chapucero. Los inconvenientes son que no sabes si hay impresora, no sabes que tipo de impresora puede haber, etc. pero hay métodos para averiguarlo, según tus necesidades. Si necesitas más ayuda, mándame un e-mail y te contestaré desde casa, k ahora estoy en el trabajo y si me ve el jefe me cae la bronca :-P.
Atentamente,
Eduard Pascual, Programador Semi-profesional