【问题标题】:Program to check if printer exists检查打印机是否存在的程序
【发布时间】:2013-06-09 07:38:09
【问题描述】:

我正在寻找一种使用 C 或 C++ 程序检查 Linux/Unix 机器上是否存在打印机的方法。类似于以下 Windows 程序:

BOOL IsPrinterExist(LPTSTR pPrinterName)
{
    HANDLE hPrinter = NULL;
    if(OpenPrinter(PRINTERNAME,&hPrinter,NULL))
    {
        ClosePrinter(hPrinter);
        hPrinter = NULL;
        return TRUE;
    }
    return FALSE;
}

我想我可以使用 CUPS API 来做到这一点,但我需要使用 OS API 在每台机器上运行的东西,无需特殊安装。我知道我也可以使用发出lpstat -a 命令并读取其输出,但我正在寻找一种直接执行此操作的方法(执行lpstat -a 所做的操作)。

【问题讨论】:

  • 我猜 lpstat 使用 CUPS API(请参阅 ldd /usr/bin/lpstat)。
  • 如果安装了 CUPS,周围有lpstat。如果未安装 CUPS,则无法使用 CUPS API。
  • 不要尝试为此使用 OS API,你最终会写 CUPS :)
  • “IsPrinterExist”?我的眼睛在流血……

标签: c++ c linux


【解决方案1】:

由于 CUPS 是在 GNU/Linux 系统上打印的事实上的标准,我不会太担心“特殊安装”:如果没有安装 CUPS,机器可能无论如何都无法打印。

要了解如何使用 CUPS API,请查看 lpstatsource

【讨论】:

  • 所以我将使用 CUPS。谢谢大家。
  • @gabriel:如果您对此答案满意,请将其标记为已接受的答案
猜你喜欢
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2015-03-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多