Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在openvms中读取命令行参数来运行c程序?_C_Openvms_Vms - Fatal编程技术网

如何在openvms中读取命令行参数来运行c程序?

如何在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

我构建了一个简单的程序,试图打印命令行参数

下面是代码,我构建了一个可执行文件(TEST.EXE)


如何打印“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