如何在openvms中读取命令行参数来运行c程序?
我构建了一个简单的程序,试图打印命令行参数 下面是代码,我构建了一个可执行文件(TEST.EXE)如何在openvms中读取命令行参数来运行c程序?,c,openvms,vms,C,Openvms,Vms,我构建了一个简单的程序,试图打印命令行参数 下面是代码,我构建了一个可执行文件(TEST.EXE) 如何打印“test1”和“test2”?运行命令不支持任何命令行参数。定义一个外部命令并改用它。来自David Mathog的: 如何启动一个程序 方法2:使用RUN命令: $run program\u name不允许任何命令行参数 方法3:为它定义一个外部命令,然后运行它。在 下列的 示例,其中逻辑名称等效于 程序的位置 $new\u命令:==$where:program\u name $ne
如何打印“test1”和“test2”?运行
命令不支持任何命令行参数。定义一个外部命令并改用它。来自David Mathog的:
如何启动一个程序
- 方法2:使用
RUN
命令:
$run program\u name
不允许任何命令行参数
- 方法3:为它定义一个外部命令,然后运行它。在
下列的
示例,其中逻辑名称等效于
程序的位置
$new\u命令:==$where:program\u name
$new\u命令[命令行参数]
按照“a3f”定义外部命令是“正确”的方法,尽管有点繁琐和两步式
你可能还想试试MCR的“把戏”。
MCR是40多年前的PDPD-11操作系统RSX中监视器命令例程的简称
现在,MCR默认在SYS$SYSTEM中查找程序,因此您必须指定当前位置:
$ MCR dev:[dir]TEST this is a test.
还有一种使用DCL$PATH的1-1/2步骤方法。
这与Unix和Windows路径类似,提供了在输入未知命令时查找DCL脚本或程序的位置
比如说
$ DEFINE DCL$PATH SYS$DISK:[],SYS$LOGIN:,SYS$SYSTEM:
现在只需键入:测试这个。
Hein此外,如果需要保留参数的大小写,则必须引用这些参数或输入
$ SET PROCESS/PARSE_STYLE=EXTENDED
在您的流程生命周期和
$ DEFINE/USER DECC$ARGV_PARSE_STYLE TRUE
在使用特定的外部命令或使用自动外部命令(DCL$PATH)运行程序之前。否则,所有不带引号的参数将转换为小写字符
PS:VMS有一种命令语言,也就是说,您必须输入命令才能运行程序。默认情况下,文件名不是命令。通过定义DCL$PATH,您可以更改此默认行为。这个简单的问题使虚拟机看起来像恐龙。难怪其他操作系统接手了。虚拟机有很好的文件系统优势,但它从来就不意味着以交互方式运行程序。
$ SET PROCESS/PARSE_STYLE=EXTENDED
$ DEFINE/USER DECC$ARGV_PARSE_STYLE TRUE