ioperm(0x378,2,1);
usleep(100000);
st=inb(0x378+1);
ioperm(0x378,2,0);
st покажет состояние принтера (включен/выключен/ошибка),
есть ли в принтере бумага.
А вот состояние печати (есть ли в буффере принтера данные для печати) от туда не узнать. Значение st не изменяется при наличии/отсутствии в буффере принтера данных.
А от куда узнать есть ли чтото в принтере я так и не нашел .