第五十五章 File 输入 输出 - 与非 InterSystems IRIS 软件的交互
与非 InterSystems IRIS 软件的交互
在 Windows
系统上,在 IRIS
中打开顺序文件以进行 “WL”
写入访问通常会阻止非 IRIS
应用程序打开顺序文件进行写入访问。同样,非 IRIS
应用程序打开顺序文件进行写入访问通常会阻止 IRIS
进程并发 “WL”
写入访问。
但是,某些非 IRIS
应用程序,包括记事本和写字板应用程序,会打开一个文件,在共享模式下复制文件,然后立即关闭它。因此,IRIS
进程仍然可以以 “WL”
模式打开文件。当这些非 IRIS
应用程序之一尝试将其副本中的更改保存到原始文件,或尝试重新打开原始文件时,将发生错误。更严重的情况可能发生如下:如果这些非 IRIS
应用程序之一打开了一个文件,然后 IRIS
打开、修改和关闭文件,然后非 `` 应用程序保存对文件的更改,两个进程所做的更改都被保存,文件数据的完整性可能会受到损害。
在 UNIX
系统上,在 IRIS
中打开一个顺序文件以进行 “WL”
写访问通常不会影响非 IRIS
应用程序的行为。您必须使用锁来可靠地限制来自非 IRIS
应用程序的写入访问。
示例
以下示例打开文件 “LUDWIG.B“
的 ID
文件。因为它没有指定 mode
参数,所以默认情况下,它以读取访问权限和 stream
模式打开文件:
OPEN "LUDWIG.B"
以下示例将打开一个新文件 “LIST.FILE“
,具有写入权限,采用流格式。请注意,如果只包含括号通常包含的第一个参数,则不需要括号。
OPEN "LIST.FILE":"WNS"
以下示例在当前目录中打开一个文件 “CARDS”
,该文件具有读取和写入访问权限,以及 80
个字符的固定长度记录。
OPEN "CARDS":("FRW":80)
以下示例在目录 c:\usr\dir
中打开流格式文件 “STRNG”
,其中包含非默认终止符
OPEN "c:\usr\dir\STRNG":("S"::$CHAR(0)_$CHAR(255))