第五十二章 File 输入 输出 - OPEN模式参数
第五十二章 File 输入 输出 - OPEN模式参数
OPEN 模式参数
可以通过以下两种方式之一指定 OPEN 模式参数
- 用引号字符括起来的字母代码字符串,如
“VRWN”。每个字母都指定一个参数。字母代码可以按任何顺序指定;因为 IRIS 按照从左到右的顺序执行它们,所以在某些情况下,字母代码之间的交互可能会决定首选顺序。 - 一系列
/keyword参数,未加引号。这些参数用冒号分隔。关键字参数可以按任意顺序指定;因为 IRIS 以从左到右的顺序执行它们,所以在某些情况下,参数之间的交互可能会决定首选顺序。
指定字母代码参数和关键字参数的组合时,请先指定字母代码字符串,然后指定关键字参数,用冒号分隔。以下示例指定三个字母代码参数,后跟两个关键字参数,后跟 reclen 和 timeout 参数。
OPEN "mytest":("WNS":/OBUFSIZE=65536:/GZIP=0:32767):10
N /NEW
新建文件。如果指定的文件不存在,则系统创建该文件。如果指定的文件已作为 ReadOnly 文件存在,则系统会删除旧文件并将其替换为同名的新文件(权限允许)。请注意,应使用文件锁定来防止使用此参数的并发进程覆盖同一文件。
如果未指定 “N” 模式(或 “T” 模式),并且在 OPEN 中指定的文件不存在,则 Windows 和 UNIX® 默认为不创建新文件。此行为可使用 %SYSTEM 的 FileMode() 方法进行配置。Process 类。可以通过设置 Config.Miscellaneous 类的 FileMode 属性来建立系统范围的默认行为。
E /CREATE /CRE
如果文件不存在,请创建一个文件。不会像 “N” 模式那样删除并重新创建现有文件。默认设置是不创建新文件。如果 FileMode()
T /TRUNCATE
Truncate File:如果文件存在且可写,则它将被截断,其属性保持不变。如果指定的文件不存在,则系统会创建一个新文件,就像指定了 “N” 模式一样。“WT” 和 “WNT” 在功能上相同。
D
/DELETE[=n] /DEL[=n]
删除文件: 指定在关闭文件时应自动删除文件。/DELETE 或 /DELETE=n(对于非零值 n)启用参数代码。/DELETE=n(如果值为零,则为 n)将禁用参数代码。默认设置是不删除文件。
R /READ
读取:IRIS 允许读取访问该文件。其他进程也可以访问此文件(但是,请参阅 “L” 参数)。如果尝试在 “R” 模式下打开不存在的文件,则进程将挂起。若要防止这种情况,请使用 timeout。“R” 是所有平台的默认值。系统范围的默认打开模式可以通过设置 OpenMode 来配置
W /WRITE /WRI
Write: IRIS 允许对文件进行 WRITE 访问。在Windows 和 UNIX® 中,“W” 为进程提供对文件的共享写入访问权限,以及对记录的独占写入访问权限。使用 “WL” 指定对文件的独占写入访问权限。如果尝试以 “W” 模式打开不存在的文件,则进程将挂起,直到创建文件或通过超时、进程终止或 RESJOB 解决进程。“R” 是所有平台的默认值。系统范围的默认打开模式可以通过设置 OpenMode 来配置
L
锁定独占:将 “L” 模式与 “W” (写入) 模式一起使用,以指定对文件的独占写入访问权限。“WL” 或 “WRL” 指定当前进程对文件具有独占写入访问权限。使用 “RL” 打开的文件可能仍具有共享读取访问权限。在 Windows 和 UNIX® 中,“L” 模式对并发打开的影响不同。有关更多详细信息,请参阅下面的“OPEN Mode Locking”部分。在 UNIX® 系统上,如果一个进程指定了对文件的 “WL” (或 “WRL”) 访问,则请求对该文件的读取访问的其他进程必须指定 “RL”,以便 UNIX® 可以协调文件锁定。