文章目录
- [第九章 本地进程间通信(管道)](#第九章 本地进程间通信(管道))
- 介绍
- [打开 `IRIS` 实用程序的管道](#打开
IRIS实用程序的管道) - 管道和命令管道
- [标准管道 `OPEN`](#标准管道
OPEN) - [`OPEN` 命令管道打开](#
OPEN命令管道打开)
第九章 本地进程间通信(管道)
本页介绍如何通过管道与 IRIS® 数据平台外部的进程建立通信。
介绍
可以通过管道在 IRIS 进程和外部 UNIX® 或 Windows 进程之间进行通信,就像在 UNIX® 或 Windows 操作系统级别一样。可以将输出发送到管道或从管道接收输入。管道为单向;不能同时读取和写入同一个程序。
当打开另一个程序的管道进行输出时,可以像写入顺序文件一样对其进行写入。然后程序使用编写的内容作为其输入流。当希望 IRIS 进程与外部进程共享资源时,此功能特别有用。
打开 IRIS 实用程序的管道
可以打开通往 IRIS 实用程序以及 UNIX® 或 Windows 进程的管道。在将管道用于实用程序 I/O 之前,系统管理员必须在 IRIS 系统上定义管道设备。
系统管理员定义管道设备后,当运行实用程序(例如^%RD )时,可以使用系统管理员定义的助记符回答Device:提示。输出会自动发送到该设备。
管道和命令管道
IRIS 支持标准管道和命令管道 (CPIPE)。标准管道用于相对较短的命令字符串,其中命令名称及其参数少于 256 个字符。当命令字符串长度为 256 个字符或更长时,使用命令管道。在这两种情况下,管道只能在 UNIX® 和 Windows 系统上使用。
标准管道 OPEN
以下是标准管道的OPEN命令语法:
java
OPEN program:(parameters):timeout
因为program是第一个参数(设备参数),所以它必须遵循OPEN命令设备名称的256个字符的限制。
如果对已打开的标准管道发出OPEN命令,则第二个OPEN将被忽略。没有发出错误。
OPEN 命令管道打开
以下是命令管道的OPEN命令语法:
java
OPEN cpipename:program:timeout
OPEN cpipename:(program:parameters:::closetimeout):timeout
cpipename参数可以采用值"|CPIPE|"如果只有命令管道同时打开。要打开多个并发管道,请指定"|CPIPE|xxxxxx" ,其中xxxxxx表示用户指定的唯一标识符。此cpipename参数是为后续USE和CLOSE命令指定的参数。
由于program是第二个参数,因此它不限于256个字符。程序的最大长度取决于平台。
如果对已打开的命令管道发出OPEN命令,则第二个OPEN将被忽略。没有发出错误。