gpt4 book ai didi

c++ - 实现打印机后台处理程序

转载 作者:行者123 更新时间:2023-11-28 07:25:24 31 4
gpt4 key购买 nike

我们有一个作业,我们必须在其中使用链表实现打印机后台处理程序。我已经使用 STL 中的列表来实现所有内容。我可以让程序发送打印命令并维护文档状态。问题是我不知道如何模仿/发送虚拟打印命令以便打印文档。如果我使用 Sleep(),整个程序会有延迟。而我想反手打印,而其他用户可以访问该程序。对于我的问题,任何帮助将不胜感激。

最佳答案

在真正的打印后台处理程序中,要么有多个线程(或者在 Unix 中,可能是一个 fork),要么系统使用“等待多个对象”类型的方法,并且当有东西需要打印,文档的一部分被发送到打印机,设置以便当该部分被“消耗”时,可等待对象“准备好”。然后假脱机程序等待发生某些事情(新作业或打印)。等待完成后,它确定发生了什么。如果它是一个新的打印作业,将它排队,如果它是“一些打印完成”,它会检查这是否是最后一次打印并完成作业,或者将更多的东西发送到打印机。

在 pseudocdoe 中它可能看起来像这样:

for(;;)
{
what = wait_for_work();
switch (what)
{
case new_job:
add_new_job();
break;
case print_write_done:
if (document_complete)
remove_current_job();
else
send_more_from_current_job();
break;
case spooler_terminate:
exit(0);
default:
print_error_message();
}
}

显然,如果没有看到您的代码,就很难说您应该如何实现它。但是可以有一个计时器来模拟“以小块打印的文档”,例如,每 100 毫秒消耗 10KB。

关于c++ - 实现打印机后台处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810565/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com