如何在Linux下获取并口打印机的状态&xFF1F;

如何在Linux下获取并口打印机的状态&xFF1F;,linux,cups,Linux,Cups,如何获取Linux下并口打印机的状态,如缺纸、设备未安装等。 或 如何通过CUPS打印机状态等。int fd=open(“/dev/lp0”,O_RDWR); int fd = open("/dev/lp0", O_RDWR); if (fd < 0) { printf("can't open lp0\n"); } else { int status = 0; if (ioctl(fd, LPGETSTATUS, &status) == 0) {

如何获取Linux下并口打印机的状态,如缺纸、设备未安装等。 或 如何通过CUPS打印机状态等。

int fd=open(“/dev/lp0”,O_RDWR);
int fd = open("/dev/lp0", O_RDWR);
if (fd < 0)
{
    printf("can't open lp0\n");
}
else
{
    int status = 0;
    if (ioctl(fd, LPGETSTATUS, &status) == 0)
    {

        fprintf(stderr, "DEBUG: LPGETSTATUS returned a port status of %02X...\n", status);
          if (status & LP_NOPA)
        {
            RET = T;
            fputs("WARNING: Media tray empty!\n", stderr);
        }
        else if (status & LP_ERR)
        {
            RET = F;
            fputs("WARNING: Printer fault!\n", stderr);

        }
        else if (status & LP_OFFL)
        {
            RET = F;
            fputs("WARNING: Printer off-line.\n", stderr);
        }
    close(fd);
如果(fd<0) { printf(“无法打开lp0\n”); } 其他的 { int status=0; if(ioctl(fd、LPGETSTATUS和status)==0) { fprintf(stderr,“DEBUG:LPGETSTATUS返回的端口状态为%02X…\n”,status); if(状态和LP_NOPA) { RET=T; fputs(“警告:媒体托盘空!\n”,标准配置); } else if(状态和LP_错误) { RET=F; fputs(“警告:打印机故障!\n”,stderr); } 其他如果(状态和LP_OFFL) { RET=F; fputs(“警告:打印机脱机。\n”,stderr); } 关闭(fd);
} }