我在 VMS 上有一个 DCL 脚本,它调用一个 perl 脚本。是否有我可以使用的 VMS/DCL 命令告诉我 perl 脚本打开的每个文件句柄?
4 回答
将默认设置为运行应用程序的磁盘(或者,如果它是一个非常大或分布式的应用程序,您可能必须连续尝试每个磁盘)。然后命令是
显示设备/文件/无系统
如果您使用的是较新版本的 VMS 并且列表太长,则可以通过执行以下操作通过搜索来管道它:
管道显示设备/文件/nosystem | 搜索 sys$input(perl 脚本的名称)
您需要找到未记录的 VMS 功能的文档 :-)
说真的,我认为这set watch
可能会做你想要的。如果你发出
$ set watch file/class=(all,nodump)
$ perl yourperlscript.pl
您将获得大量的输出,这些输出有望包含您想要的内容。我已经很多年没有这样做了,你可能会调整选项来微调它。见 http://www.parsec.com/openvms/undocumented.php?page=13
嗯,这个不确定。也许在您的帖子中添加一个 linux 标签,以便一些 linux 人员可以看到并加入。我不确定为什么您的 perl 程序不知道它打开了哪些文件。这是你的程序,它不会访问你告诉它访问的文件吗?或者,如果您以某种方式计算文件名(我已经在 cobol 中完成了,但仍然至少知道在哪个目录中找到它们,以及它们使用什么命名方案),您仍然会有我提到的线索。另外,因为它是你的程序,如果你正在计算文件名,难道你不能让你的 Perl 程序输出它自己的文件是什么的小报告吗?就像,在它计算文件名之后,让它将名称字符串复制到一个单独的报告文件中。
杰森,我需要对 a) 进行更多说明。您是说要在批处理文件中运行 perl 脚本并让批处理文件监视 perl 脚本正在访问的文件吗?或者是其他东西?