第六章 主设备、当前设备、空设备
明确使用主设备
USE 0
或USE $principal
向进程的主体设备隐式发出OPEN
命令。如果另一个进程拥有该设备,则该进程会挂在隐式OPEN
上,就像它遇到任何OPEN
时一样。
为该进程不拥有的任何其他设备(由于先前的OPEN
命令)发出USE
命令会产生错误。
仅当进程获取设备时,没有超时的OPEN
命令才将控制权返回给进程。可以通过键盘中断命令(如Ctrl-C
)中断打开命令。由于保护问题或无效设备名称而无法成功的OPEN
将永远挂起。当在OPEN命令中指定超时时, OPEN
将在超时到期时将控制权返回给进程。
使用主设备的选项
根据主要设备的性质,可以指定其他特定于设备的参数,这些参数对于管道(进程间通信) 、文件和终端 I/O
是不同的。例如,可以使用 TLS
连接打开主设备:
USE $principal:(::/TLS=ConfigName)
其中ConfigName
是同一实例中定义的 TLS
配置的名称。
空设备
如果应用程序生成不希望出现在屏幕上的无关输出,可以将该输出定向到空设备。可以通过发出带有适当参数的 IRIS OPEN
命令来指定空设备(见表)。 IRIS
将其视为虚拟设备。
空设备参数
Platform 平台 | Null Device Argument 空设备参数 |
---|---|
UNIX® |
/dev/null/ |
Windows |
//./nul |
后续READ
命令立即返回空字符串。随后的WRITE
命令立即返回成功。没有读取或写入实际数据。 NULL
设备完全绕过 UNIX®
打开、写入和读取系统调用。
注:如果从 IRIS
内部以外的地方打开 NULL
设备(例如,通过将 IRIS
输出从 UNIX® shell
重定向到 /dev/null
),则 UNIX®
系统调用确实会像对任何其他设备一样发生。
注:当一个进程使用JOB
命令启动另一个进程时,Jobbed
进程的默认主要输入和输出设备是空设备。