【发布时间】: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”?我的眼睛在流血……