¿Cómo ejecutar un progtwig de CA con parámetros de línea de comando de lectura en OpenVMS?

Construí un progtwig simple, intenté imprimir los parámetros de la línea de comandos.

El código está debajo y construí un archivo ejecutable (TEST.EXE).

int main(int argc, char *argv[]) { int i; printf("%s\n",argv[0]); for (i = 1; i < argc; i++) printf("argument %d: %s\n", i, argv[i]); exit (EXIT_SUCCESS); } 

Intento ejecutar el TEST.EXE e imprimir los parámetros pero fallar.

El resultado del comando RUN TEST.EXE test1 test2 :

 %DCL-W-MAXPARM, too many parameters - reenter command with fewer parameters 

¿Qué puedo hacer para imprimir “test1” y “test2”?

Además, si necesita conservar el caso de los argumentos, debe citar estos argumentos o ingresar

 $ SET PROCESS/PARSE_STYLE=EXTENDED 

una vez en la vida de su proceso y

 $ DEFINE/USER DECC$ARGV_PARSE_STYLE TRUE 

antes de ejecutar su progtwig con un comando externo específico o mediante el uso de comandos externos automáticos (DCL $ PATH). De lo contrario, todos los argumentos sin comillas se convierten en caracteres en minúscula.

PS: VMS tiene un lenguaje de comando, es decir, debe ingresar un comando para ejecutar un progtwig. Por defecto, los nombres de archivos no son comandos. Al definir DCL $ PATH, cambia este comportamiento predeterminado.

El comando RUN no admite ningún argumento de línea de comando. Defina un comando extranjero y use eso en su lugar. De las preguntas frecuentes para principiantes de David Mathog:

¿Cómo comienzo un progtwig?

  • Método 2: Utilice el comando RUN :

    $ run program_name No command line arguments allowed

  • Método 3: Defina un comando foráneo para él, luego ejecútelo. En el siguiente ejemplo, donde es un nombre lógico equivalente a la ubicación del progtwig.

    $ new_command :== $where:program_name $ new_command [command line arguments]

Definir un comando extranjero según ‘a3f’ es la forma ‘correcta’ de hacerlo aunque sea algo tedioso y de dos pasos.

También es posible que desee probar el ‘truco’ de MCR. MCR es la abreviatura de la rutina de comandos del monitor del sistema operativo RSX PDPD-11 de más de 40 años.

Ahora, MCR busca por defecto el progtwig en SYS $ SYSTEM, por lo que debe especificar la ubicación actual:

 $ MCR dev:[dir]TEST this is a test. 

También hay un enfoque de 1-1 / 2 pasos usando DCL $ PATH. Esto funciona principalmente como la ruta de Unix y Windows, proporcionando lugares para buscar scripts o progtwigs DCL si se ingresa un comando desconocido.

Por ejemplo

 $ DEFINE DCL$PATH SYS$DISK:[],SYS$LOGIN:,SYS$SYSTEM: 

Ahora solo escribe: TEST this.

Hein