PostScript控制循环-服务器循环
我正在调查启动/服务器循环。 Insi de Postscript手册解释了/start过程。 该程序的一部分是控制回路:PostScript控制循环-服务器循环,postscript,Postscript,我正在调查启动/服务器循环。 Insi de Postscript手册解释了/start过程。 该程序的一部分是控制回路: ... { //serverdict /server get exec //serverdict begin setstreams setnulldevice /execjob load end exec } loop ... 现在,我试图找出/server的具体功能以及它的外观(以其最简单的形式) 上面的这一行获取服务器过程并立即执
...
{
//serverdict /server get exec
//serverdict begin
setstreams
setnulldevice
/execjob
load
end
exec
} loop
...
现在,我试图找出/server的具体功能以及它的外观(以其最简单的形式)
上面的这一行获取服务器过程并立即执行它
现在我有一个如下的服务器循环:
/server {
{ % server loop
(i'm in a server loop) print flush
(%stdin) run
}
loop
} def
但我被困在一个无限循环中。服务器循环如何以及何时才能进入下一步(//serverdict begin setstreams等),因为它当前处于无限循环中?在您显示的控制循环中,绑定到名称
服务器的对象似乎不像您的代码那样循环。它似乎做了一些初始化,然后返回。表达式/execjob load
似乎运行当前作业。除此之外,还有一个{…}循环
表达式,它似乎是您实现的服务器循环
如果要将自己的服务器代码插入到提供的循环中,则需要使用解释器提供的//serverdict
的内容。如果您想编写自己的服务器循环,似乎需要执行一个级别,并替换整个{…}循环
表达式,还可能替换//serverdict
如果您想“了解/server的确切功能以及它的外观…”,那么看看它怎么样?道德上等同于:
//serverdict /server get == flush
您是在试图理解现有的实现还是创建自己的实现?如果它是创建您自己的,那么有什么限制?您想一次单独运行一个文件,还是从命令行运行一个文件列表,还是只运行用户输入?是否要捕获错误?请阅读PLRM中的stop
/stopped
运算符试图了解现有运算符的工作原理,以使我自己的实现工作。我可以做一个C#while循环并处理所有的事情,没问题,但我想像打印机那样做。
//serverdict /server get == flush