Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostScript控制循环-服务器循环_Postscript - Fatal编程技术网

PostScript控制循环-服务器循环

PostScript控制循环-服务器循环,postscript,Postscript,我正在调查启动/服务器循环。 Insi de Postscript手册解释了/start过程。 该程序的一部分是控制回路: ... { //serverdict /server get exec //serverdict begin setstreams setnulldevice /execjob load end exec } loop ... 现在,我试图找出/server的具体功能以及它的外观(以其最简单的形式) 上面的这一行获取服务器过程并立即执

我正在调查启动/服务器循环。 Insi de Postscript手册解释了/start过程。 该程序的一部分是控制回路:

...
{
  //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