Tradução de página de código de impressora
Uma página de código intermediário é produzida durante o primeiro estágio da tradução de página de código.
O exemplo abaixo gera uma tabela de tradução stage-1 para traduzir pontos de código de um hipotético Código Página 123 para a página de código intermediário.
#include <piostruct.h>
#include <fcntl.h>
/*** Table to Translate Code Points for Input Code Page ***/
/*** "123" to Code Points for the Intermediate Code Page ***/
short table[256] = {
/* 00 (000) */ CP, CP, CP, CP,
.
.
.
/* FC (252) */ CP, SC, 126, CP };
/*** Write the Table to a File (Error Processing Not Shown) ***/
main ( ) {
int fildes;
int fmt_type = 1;
fildes = open("/usr/lib/lpd/pio/transl/123", O_CREAT | O_WRONLY,\
0664);
write(fildes, "PIOSTAGE1XLATE00", 16);
write(fildes, &fmt_type, sizeof(fmt_type));
write(fildes, table, sizeof(table));
return(0);
}O CP no código ponto 252 significa que o ponto de código deve ser copiado sem alteração. O SC no código ponto 253 significa que o caractere não está definido na página de código intermediário e por isso um caractere substituto deve ser impresso em vez disso. O 126 no código ponto 254 significa que o código ponto 254 deve ser traduzido para o código ponto 126.
A sinalização -X no comando qprt especifica o nome da página de código do arquivo de impressão. Quando este valor é 123, o formatador lê a tabela a partir do arquivo /usr/lib/lpd/pio/trans1/123 e o utiliza para a tradução stage-1 .