ipp_t *request, *response; ipp_attribute_t *attr; int page_count = 0; // 创建一个 Get-Job-Attributes 请求 request = ippNewRequest(IPP_OP_GET_JOB_ATTRIBUTES); ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_JOB, "job-id", jobId); response = cupsDoRequest(CUPS_HTTP_DEFAULT, "localhost:631", request, NULL); // 获取打印任务的打印页数 if ((attr = ippFindAttribute(response, "job-printed-page-count", IPP_TAG_INTEGER)) != NULL) { page_count = ippGetInteger(attr, 0); } ippDelete(request); ippDelete(response); printf("Print job %d has %d pages\n", jobId, page_count); 这段代码中使用cupsDoRequest对吗
时间: 2024-03-04 22:52:13 浏览: 103
ippicv_linux_20151201.tgz
是的,这段代码中使用了cupsDoRequest函数。具体来说,它使用了CUPS提供的IPP(Internet Printing Protocol)API,向CUPS服务器发送了一个Get-Job-Attributes请求,获取打印任务的打印页数。
在这段代码中,cupsDoRequest函数的第一个参数是CUPS_HTTP_DEFAULT,表示使用默认的HTTP连接。第二个参数是CUPS服务器的地址,这里是"localhost:631"。第三个参数是一个指向IPP请求对象的指针。第四个参数是一个指向IPP响应对象的指针,这里设置为NULL,表示不需要获取响应对象。
需要注意的是,这段代码中使用了IPP API而不是纯粹的HTTP API,但是它们的底层实现是相同的,都是通过cupsDoRequest函数向CUPS服务器发送HTTP请求。
阅读全文