command-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor CLI command to be executed by the spawned subprocess. The command-string argument is the address of a descriptor pointing to this CLI command string. If command-string is omitted, commands are taken from the file specified by input-file. input-file OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Equivalence name to be associated with the logical name SYS$INPUT in the logical name table for the subprocess. The input- file argument is the address of a descriptor pointing to this equivalence string. If input-file is omitted, the default is the caller's SYS$INPUT. output-file OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Equivalence name to be associated with the logical names SYS$OUTPUT and SYS$ERROR in the logical name table for the subprocess. The output-file argument is the address of a descriptor pointing to this equivalence string. If output-file is omitted, the default is the caller's SYS$OUTPUT. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Flag bits that designate optional behavior. The flags argument is the address of an unsigned longword that contains these flag bits. By default, all flags are clear. These flags are defined as follows: Bit Symbol Meaning 0 NOWAIT If this bit is set, the calling process continues executing in parallel with the subprocess. If this bit is clear, the calling process hibernates until the subprocess completes. 1 NOCLISYM If this bit is set, the spawned subprocess does not inherit CLI symbols from its caller. If this bit is clear, the subprocess inherits all currently defined CLI symbols. You may want to specify NOCLISYM to help prevent commands redefined by symbol assignments from affecting the spawned commands. 2 NOLOGNAM If this bit is set, the spawned subprocess does not inherit process logical names from its caller. If this bit is clear, the subprocess inherits all currently defined process logical names. You may want to specify NOLOGNAM to help prevent commands redefined by logical name assignments from affecting the spawned commands. 3 NOKEYPAD If this bit is set, the keypad symbols and state are not passed to the subprocess. If this bit is not set, the keypad settings are passed to the subprocess. 4 NOTIFY If this bit is set, a message is broadcast to SYS$OUTPUT when the subprocess completes or aborts. If this bit is not set, no message is broadcast. This bit should not be set unless the NOWAIT bit is also set. 5 NOCONTROL If this bit is set, no carriage-return/line-feed is prefixed to any prompt string. If this bit is not set, a carriage-return/line-feed is prefixed to any prompt string specified. 6 TRUSTED If this bit is set, it indicates a SPAWN command on behalf of the application. If this bit is not set, it indicates that the SPAWN command originates from user. SPAWN commands originating from users are disallowed in captive accounts (DCL). 7 AUTHPRIV If this bit is set, the subprocess inherits the caller's authorized privileges. If this bit is clear, the spawned processes' authorized mask is set equal to the caller's current (active) privilege mask. 8 SUBSYSTEM If this bit is set, a spawned process inherits protected subsystem IDs for the duration of LOGINOUT.EXE (used to map the CLI). The IDs will be removed in the process of transferring control to the CLI (as a user mode $RUNDWN is performed). If this bit is clear, LOGINOUT does not execute under the subsystem IDs. Bits 9 through 31 are reserved for future expansion and must be zero. Symbolic flag names are defined in libraries supplied by VSI in module $CLIDEF. They are CLI$M_NOWAIT, CLI$M_NOCLISYM, CLI$M_ NOLOGNAM, CLI$M_NOKEYPAD, CLI$M_NOTIFY, CLI$M_NOCONTROL, CLI$M_ TRUSTED, CLI$M_AUTHPRIV, and CLI$M_SUBSYSTEM. process-name OpenVMS usage:process_name type: character string access: read only mechanism: by descriptor Name defined for the subprocess. The process-name argument is the address of a descriptor pointing to this name string. If process- name is omitted, a unique process name will be generated. If you supply a name and it is not unique, LIB$SPAWN will return the condition value SS$_DUPLNAM. The DCL_CTLFLAGS is a bitmask used to alter default behavior for certain commands on a systemwide basis. Currently, only the low bit of the bitmask is defined. The low bit controls the default process-name assignment for a subprocess created using the LIB$SPAWN routine. Prior to OpenVMS Version 7.3-1, if no process name was supplied, the system constructed a name by appending _n to the username, where n was the next available non-duplicate integer for any process currently in the system. For example, the first spawned process from user SYSTEM would be called SYSTEM_1, the second, SYSTEM_2, and so on. The next available number was chosen, as soon as a gap was found. Beginning in OpenVMS Version 7.3-1, the default constructed process name for subprocesses has changed. Instead of incrementally searching for the next unique number, a random number is chosen to append to the username. Therefore, the first processes that are spawned from user SYSTEM might be SYSTEM_154, SYSTEM_42, SYSTEM_87, and so on. This procedure results in a very high probability of finding a unique number on the first try since it is unlikely the same number is already in use. However, some applications might rely on the previous method of assigning subprocess names. The DCL_CTLFLAGS parameter is available to allow you to configure the system as necessary. Bit 0 of DCL_CTLFLAGS selects the behavior for assigning default subprocess names, as explained in the following: o If clear, the new behavior is used. If the process name is not specified, it will be the username with a random number suffix. This is the default setting. o If set, the previous behavior is used. If the process name is not specified, it will be the username with the next available number suffix. process-id OpenVMS usage:process_id type: longword (unsigned) access: write only mechanism: by reference Process identification of the spawned subprocess. The process-id argument is the address of an unsigned longword that contains this process identification value. This process identification value is meaningful only if the NOWAIT flags bit is set. completion-status-address OpenVMS usage:address type: address access: read only mechanism: by value The final completion status of the subprocess. The completion- status-address argument contains the address of the status. The system writes the value of the final completion status of the subprocess into completion-status-address when the subprocess completes. If the subprocess returns a status code of 0, the system writes SS$_NORMAL into this address. If the NOWAIT flags bit is set, the completion-status-address is updated asynchronously when the subprocess completes. Use the byte-integer-event-flag-num or AST-address arguments to determine when the subprocess has completed. Your program must ensure that the address is still valid when the value is written. byte-integer-event-flag-num OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference The number of a local event flag to be set when the spawned subprocess completes. The byte-integer-event-flag-num argument is the address of an unsigned byte that contains this event flag number. If byte-integer-event-flag-num is omitted, no event flag is set. Specifying byte-integer-event-flag-num is meaningful only if the NOWAIT flags bit is set. AST-address OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by value Routine to be called by means of an AST when the subprocess completes. Specifying AST-address is meaningful only if the NOWAIT flags bit is set. varying-AST-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value A value to be passed to the AST routine. Typically, the varying- AST-argument argument is the address of a block of storage the AST routine will use. Specifying varying-AST-argument is meaningful only if the NOWAIT flags bit is set and if AST-address has been specified. prompt-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Prompt string to use in the subprocess. The prompt-string argument is the address of a descriptor pointing to this prompt string. If prompt-string is omitted, the subprocess uses the same prompt string that the parent process uses. cli OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification for the command language interpreter (CLI) to be run in the subprocess. The cli argument is the address of this file specification string's descriptor. The CLI specified must reside in SYS$SYSTEM with a file type of .EXE, and it must be installed. No directory or file type may be specified. The cli argument must be specified in uppercase characters. If cli is omitted, the subprocess uses the same CLI as the parent process. If cli is specified, no context is copied to the subprocess. table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification for the command tables to be used by the spawned process. The table argument is the address of this file specification string's descriptor. The table specified must reside in SYS$SHARE with a file type of .EXE, and it must be installed. If table is omitted, the subprocess uses the same table as the parent process.