文章
· 十一月 2 阅读大约需 2 分钟

第九章 本地进程间通信(管道)

第九章 本地进程间通信(管道)

本页介绍如何通过管道与 IRIS® 数据平台外部的进程建立通信。

介绍

可以通过管道在 IRIS 进程和外部 UNIX®Windows 进程之间进行通信,就像在 UNIX®Windows 操作系统级别一样。可以将输出发送到管道或从管道接收输入。管道为单向;不能同时读取和写入同一个程序。

当打开另一个程序的管道进行输出时,可以像写入顺序文件一样对其进行写入。然后程序使用编写的内容作为其输入流。当希望 IRIS 进程与外部进程共享资源时,此功能特别有用。

打开 IRIS 实用程序的管道

可以打开通往 IRIS 实用程序以及 UNIX®Windows 进程的管道。在将管道用于实用程序 I/O 之前,系统管理员必须在 IRIS 系统上定义管道设备。

系统管理员定义管道设备后,当运行实用程序(例如^%RD )时,可以使用系统管理员定义的助记符回答Device:提示。输出会自动发送到该设备。

管道和命令管道

IRIS 支持标准管道和命令管道 (CPIPE)。标准管道用于相对较短的命令字符串,其中命令名称及其参数少于 256 个字符。当命令字符串长度为 256 个字符或更长时,使用命令管道。在这两种情况下,管道只能在 UNIX®Windows 系统上使用。

标准管道 OPEN

以下是标准管道的OPEN命令语法:

OPEN program:(parameters):timeout

因为program是第一个参数(设备参数),所以它必须遵循OPEN命令设备名称的256个字符的限制。

如果对已打开的标准管道发出OPEN命令,则第二个OPEN将被忽略。没有发出错误。

OPEN 命令管道打开

以下是命令管道的OPEN命令语法:

OPEN cpipename:program:timeout
OPEN cpipename:(program:parameters:::closetimeout):timeout

cpipename参数可以采用值“|CPIPE|”如果只有命令管道同时打开。要打开多个并发管道,请指定"|CPIPE|xxxxxx" ,其中xxxxxx表示用户指定的唯一标识符。此cpipename参数是为后续USECLOSE命令指定的参数。

由于program是第二个参数,因此它不限于256个字符。程序的最大长度取决于平台。

如果对已打开的命令管道发出OPEN命令,则第二个OPEN将被忽略。没有发出错误。

讨论 (0)1
登录或注册以继续