首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在FTP/Append之前检查文件是否在OpenVMS中打开

问在FTP/Append之前检查文件是否在OpenVMS中打开
EN

Stack Overflow用户
提问于 2016-04-06 20:43:24
回答 2查看 534关注 0票数 0

我在SAG Natural有一份工作,可以创建工作文件。他们被创建后,我想要追加,如果有多个,然后ftp他们。append/ftp将独立于创建它们的作业运行。这带来了在当前创建文件时尝试使用ftp/append文件的问题。

在我继续我的逻辑之前,OpenVMS或FTP中有没有语法可以检查文件是否打开/锁定?

EN

回答 2

Stack Overflow用户

发布于 2016-04-07 11:33:06

我不会尝试打开来写...因为它可能会起作用,锁定其他人,并更改修订日期/计数。相反,只需尝试$OPEN/READ/SHARE=READ FILE ...

如果它打开了,您实际上可以使用文件句柄来读取数据,从而防止其他进程在测试和使用之间打开它。但它将使用DCL IO,它使用较小的缓冲区。下面的例子主要是为了好玩: APPEND FILE ...这个例子硬编码了一个输出,主要是因为我很懒。您最好先在成功时关闭文件,然后使用APPEND/LOG。

享受吧,海因

代码语言:javascript
复制
$ output = "tmp.tmp"
$ if p1.eqs."" then exit 16
$ create tmp.tmp
$ old = ""
$loop:
$ file_name = f$search(p1)
$ if file_name .eqs. "" .or. file_name .eqs.old then exit
$ old = file_name ! Handle non-wildcarded input
$ close/nolog file
$ open/read/share=read/erro=locked_or_other_error file 'file_name'
$ append file tmp.tmp ! /log
$ write sys$error "Appended ", file_name
$ close/nolog file
$ goto loop
$locked_or_other_error:
$ write sys$error "Found, but could not open file ", file_name
$ goto loop
票数 1
EN

Stack Overflow用户

发布于 2016-04-07 07:43:20

SHOW DEVICE /FILE有帮助吗?如果您的文件是打开的,它应该会显示在该命令的输出中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36451525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档