/sys$common/syshlp/helplib.hlb ASSIGN, Examples *Conan The Librarian (sorry for the slow response - running on an old VAX) |
1.$ ASSIGN $DISK1:[CREMERS.MEMOS] MEMOSD The ASSIGN command in this example equates the partial file specification $DISK1:[CREMERS.MEMOS] to the logical name MEMOSD. 2.$ ASSIGN/USER_MODE $DISK1:[FODDY.MEMOS]WATER.TXT TM1 The ASSIGN command in this example equates the logical name TM1 to a file specification. After the next image runs, the logical name is deassigned automatically. 3.$ ASSIGN XXX1:[HEROLD] ED $ PRINT ED:TEST.DAT Job 274 entered on queue SYS$PRINT The ASSIGN command in this example associates the logical name ED with the directory name [HEROLD] on the disk XXX1. Subsequent references to the logical name ED result in the correspondence between the logical name ED and the disk and directory specified. The PRINT command queues a copy of the file XXX1:[HEROLD]TEST.DAT to the system printer. 4.$ ASSIGN YYY2: TEMP: $ SHOW LOGICAL TEMP "TEMP" = "YYY2:" (LNM$PROCESS_TABLE) $ DEASSIGN TEMP The ASSIGN command in this example equates the logical name TEMP to the device YYY2. TEMP is created in supervisor mode and placed in the process logical name table. The SHOW LOGICAL command verifies that the logical name assignment was made. Note that the logical name TEMP was terminated with a colon in the ASSIGN command, but that the command interpreter deleted the colon before placing the name in the logical name table. Thus, you can specify TEMP without a colon in the subsequent DEASSIGN command. You should omit the colon in the SHOW LOGICAL command (for example, SHOW LOGICAL TEMP). 5.$ MOUNT TTT1: MASTER TAPE $ ASSIGN TAPE:NAMES.DAT PAYROLL $ RUN PAYROLL . . . The MOUNT command in this example establishes the logical name TAPE for the device TTT1, which has the volume labeled MASTER mounted on it. The ASSIGN command equates the logical name PAYROLL with the file named NAMES.DAT on the logical device TAPE. Thus, an OPEN request in a program referring to the logical name PAYROLL results in the correspondence between the logical name PAYROLL and the file NAMES.DAT on the tape whose volume label is MASTER. 6.$ CREATE/NAME_TABLE TABLE1 $ ASSIGN/TABLE=LNM$PROCESS_DIRECTORY TABLE1,- _$ LNM$PROCESS,LNM$JOB,LNM$GROUP,LNM$SYSTEM LNM$FILE_DEV $ ASSIGN/TABLE=TABLE1 - _$ /TRANSLATION_ATTRIBUTES=CONCEALED DKA1: WORK_DISK The CREATE/NAME_TABLE command in this example creates the process private logical name table TABLE1. The first ASSIGN command ensures that TABLE1 is searched first in any logical name translation of a file specification or device name (because TABLE1 is the first item in the equivalence string for the logical name LNM$FILE_DEV, which determines the default search sequence of logical name tables whenever a device or file specification is translated). The second ASSIGN command assigns the logical name WORK_DISK to the physical device DKA1, and places the name in TABLE1. The logical name has the concealed attribute. Therefore, the logical name WORK_DISK will be displayed in system messages. 7.$ ASSIGN/TABLE=LNM$PROCESS/TABLE=LNM$GROUP DKA0: SYSFILES $ SHOW LOGICAL SYSFILES "SYSFILES" = "DKA0:" (LNM$GROUP_000240) The ASSIGN command in this example contains conflicting qualifiers. When you specify conflicting qualifiers, the ASSIGN command uses the last qualifier specified. The response from the SHOW LOGICAL command indicates that the name was placed in the group logical name table. 8.$ ASSIGN/TABLE=LNM$GROUP 'F$TRNLNM("SYS$COMMAND")' TERMINAL %DCL-I-SUPERSEDE, previous value of TERMINAL has been superseded The ASSIGN command in this example uses the lexical function F$TRNLNM to translate the logical name SYS$COMMAND and use the result as the equivalence name for the logical name TERMINAL. The message from the ASSIGN command indicates that an entry for the logical name TERMINAL already existed in the group logical name table, and that the new entry has replaced the previous one. If this command is used in a LOGIN.COM file, the entry for TERMINAL will be redefined at the beginning of each terminal session. The current process and any subprocesses it creates can execute images that use the logical name TERMINAL to write messages to the current terminal device. 9.$ ASSIGN DALLAS::DMA1: DATA The ASSIGN command in this example associates the logical name DATA with the device specification DMA1 on remote node DALLAS. Subsequent references to the logical name DATA result in references to the disk on the remote node. 10$ CREATE AVERAGE.COM $ ASSIGN/USER_MODE SYS$COMMAND: SYS$INPUT $ EDIT/EDT AVERAGE.FOR $ FORTRAN AVERAGE $ LINK AVERAGE $ RUN AVERAGE 87 80 90 9999 $ EXIT <Ctrl/Z> $ @AVERAGE.COM The CREATE command in this example creates the command procedure AVERAGE.COM. Then the command procedure is executed. The command procedure uses the ASSIGN command with the /USER_ MODE qualifier to change temporarily the value of SYS$INPUT. When the EDT editor is invoked, it accepts input from the terminal. This allows you to create or modify the program AVERAGE.FOR interactively. When you exit from EDT, SYS$INPUT is reassigned to its original value (the input stream provided by the command procedure). Thus, when the program AVERAGE.FOR is ready to accept input, it looks for that input in the command procedure.
|