第十四章 本地进程间通信(管道) - 用于进程间通信的 CLOSE 命令
用于进程间通信的 CLOSE
命令
如果使用带Q (/QUEUE)
参数代码的OPEN
创建子进程,则该子进程可能会在设备上的CLOS
E操作中继续存在。排队的进程间通信管道的生存能力取决于平台。在 UNIX®
系统上,子进程始终在CLOSE
后继续存在。在 Windows
系统上,进程的生存取决于进程的年龄。刚刚启动的子进程不会在CLOSE
操作中幸存,但是一旦子进程完全建立,它就会在 CLOSE
操作中幸存。
在 UNIX®
系统上,可以指定关闭管道命令设备时CLOSE
命令应等待的时间。超时默认值为 30
秒。可以通过指定OPEN
命令closetimeout
位置参数来修改此默认值。可以通过指定可选的“I”
位置参数来覆盖CLOSE
命令的默认或指定超时。 “I”参数指定立即关闭(1
秒后关闭)。 CLOSE
语法如下:
CLOSE cpipename:"I"
使用命名管道与 Visual Basic
进行通信
在 Windows
上,在 IRIS
中使用命名管道就像使用 TCP
设备一样,但使用设备名称|NPIPE|nnn而不是|TCP|nnn
。 OPEN
参数如下:
OPEN "|NPIPE|3":(server:pipename)
其中server
是计算机名称, pipename
是要连接到的管道的名称。
要连接到本地管道名,请使用“.”
(引用的期间)作为服务器。要创建管道(作为服务器),请使用“”
(不含内容的引号)作为服务器名称。以下是所有有效的服务器名称:
OPEN "|NPIPE|3":(".":"localpipe")
OPEN "|NPIPE|3":("mother":"test")
OPEN "|NPIPE|3":("":"info")
服务器可以打开命名管道并在客户端打开同一命名管道之前立即发出写入。写操作将挂起,直到客户端打开命名管道。用户可以通过发出 Control-C
来中断挂起。
一旦打开,管道就像普通设备一样。在服务器端,客户端可以像 TCP
中一样通过以下方式断开连接:
USE "|NPIPE|3":"DISCONNECT"
或者:
USE "|NPIPE|3" WRITE *-2
OPEN
命令关键字
以下列表描述了仅使用OPEN命令控制命名管道的关键字。
/HOSTNAME=str
默认值:默认值为“”
(空字符串),它将管道作为服务器打开。
对应于服务器位置参数,指定 Windows
计算机。当打开管道作为服务器时,不需要指定该关键字。使用”。”
(带引号的句点)连接到本地管道名。
/IBUFSIZE=n
默认值:2048
指定命名管道输入缓冲区的大小,该缓冲区保存从管道接收但尚未传递到应用程序的数据。
/INSTANCES=n
默认值:1
指定命名管道允许的最大实例数。大于1
的值允许多个服务器打开命名管道的实例,以便一次可以为多个客户端提供服务。
/OBUFSIZE=n
默认值:2048
指定操作系统使用的输出缓冲区的大小。此缓冲区大小是建议性的,因为操作系统根据系统施加的约束来调整缓冲区的大小。
/PIPENAME=str
无默认值。
对应于指定管道名称的pipelinename
位置参数。