第六章 主设备、当前设备、空设备
第六章 主设备、当前设备、空设备
明确使用主设备
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 进程的默认主要输入和输出设备是空设备。