第九章 本地进程间通信(管道)
本页介绍如何通过管道与 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
参数是为后续USE
和CLOSE
命令指定的参数。
由于program
是第二个参数,因此它不限于256
个字符。程序的最大长度取决于平台。
如果对已打开的命令管道发出OPEN
命令,则第二个OPEN
将被忽略。没有发出错误。