Document revision date: 30 March 2001 | |
Previous | Contents | Index |
The Scan for Characters and Return Relative Position routine is used to find a specified set of characters in the source string. LIB$SCANC makes the VAX SCANC instruction available as a callable routine.
Note
On Alpha systems, OpenVMS Alpha instructions perform the equivalent operation.
LIB$SCANC source-string ,table-array ,byte-integer-mask
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
Relative position in the source string of the character that terminated the operation, or zero if the terminator character is not found. If the source string has a zero length, then a zero is returned.
source-string
OpenVMS usage: char_string type: character string access: read only mechanism: by descriptor
Source string used by LIB$SCANC to index into a table. The source-string argument contains the address of a descriptor pointing to this source string.table-array
OpenVMS usage: vector_mask_byte type: byte (unsigned) access: read only mechanism: by reference, array reference
Table that LIB$SCANC indexes into and performs a logical AND operation with the byte-integer-mask byte. The table-array argument contains the address of an unsigned byte array that is this table.byte-integer-mask
OpenVMS usage: mask_byte type: byte (unsigned) access: read only mechanism: by reference
Mask on which a logical AND operation is performed with bytes in table-array. The byte-integer-mask argument contains the address of an unsigned byte that is this mask.
LIB$SCANC uses successive bytes of the string specified by source-string to index into a table. The byte selected from the table is the byte on which a logical AND operation is performed with the mask byte. The operation is terminated when the result of the AND operation is equal to 1.
None.
The Copy Source String Passed by Descriptor to Destination routine copies a source string passed by descriptor to a destination string.
LIB$SCOPY_DXDX source-string ,destination-string
Corresponding JSB Entry Point
LIB$SCOPY_DXDX6
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
source-string
OpenVMS usage: char_string type: character string access: read only mechanism: by descriptor
Source string to be copied to the destination string by LIB$SCOPY_DXDX. The source-string argument contains the address of a descriptor pointing to this source string. The descriptor class can be unspecified, fixed-length, decimal string, array, noncontiguous array, varying, or dynamic.destination-string
OpenVMS usage: char_string type: character string access: write only mechanism: by descriptor
Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string.The following actions occur depending on the class of the destination string's descriptor:
Descriptor Class Action S, Z, SD, A, NCA Copy the source string. If needed, space-fill or truncate on the right. D If the area specified by the destination descriptor is large enough to contain the source string, copy the source string and set the new length in the destination descriptor. If the area specified is not large enough, return the previous space allocation (if any) and then dynamically allocate the amount of space needed. Copy the source string and set the new length and address in the destination descriptor. VS Copy source string to destination string up to the limit of the descriptor MAXSTRLEN field with no padding. Readjust the current length (CURLEN) field to the actual number of bytes copied.
LIB$SCOPY_DXDX returns all condition values as a status; truncation is a qualified success condition value (bit 0 set to 1).In addition, an equivalent JSB entry point is available, with R0 containing the first argument and R1 containing the second.
SS$_NORMAL Routine successfully completed. All characters in the input string were copied to the destination string. LIB$_STRTRU Routine successfully completed. String truncated. The destination string could not contain all of the characters copied from the source string. LIB$_FATERRLIB Fatal internal error. An internal consistency check has failed. This usually indicates an internal error in the Run-Time Library and should be reported to your Compaq support representative. LIB$_INSVIRMEM Insufficient virtual memory. Your program has exceeded the image quota for virtual memory. LIB$_INVSTRDES Invalid string descriptor. A string descriptor has an invalid value in its CLASS field.
The Copy Source String Passed by Reference to Destination String routine copies a source string passed by reference to a destination string, passed by descriptor.
LIB$SCOPY_R_DX word-integer-source-length ,source-string ,destination-string
Corresponding JSB Entry Point
LIB$SCOPY_R_DX6
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
word-integer-source-length
OpenVMS usage: word_unsigned type: word (unsigned) access: read only mechanism: by reference
Length of the source string in bytes. The word-integer-source-length argument is the address of an unsigned word that contains the length of the source string.source-string
OpenVMS usage: char_string type: character string access: read only mechanism: by reference
Source string to be copied to the destination string by LIB$SCOPY_R_DX. The source-string argument is the address of this source string.destination-string
OpenVMS usage: char_string type: character string access: write only mechanism: by descriptor
Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string.
LIB$SCOPY_R_DX copies a source string, passed by reference, to a destination string, passed by descriptor. It returns the status as a condition value. Truncation is a qualified success; LIB$SCOPY_R_DX sets bit 0 of the condition value to 1.The actions taken by LIB$SCOPY_R_DX depend on the descriptor class of the destination string. The following table describes these actions for each descriptor class:
Descriptor Class Action S, Z, SD, A, NCA Copy the source string. If needed, space fill or truncate on the right. D If the area specified by the destination descriptor is large enough to contain the source string, copy the source string and set the new length in the destination descriptor. If the area specified is not large enough, return the previous space allocation, if any, and then dynamically allocate the amount of space needed. Copy the source string and set the new length and address in the destination descriptor. VS Copy source string to destination string up to the limit of the decsriptor's MAXSTRLEN field with no padding. Readjust the string's current length (CURLEN) field to the actual number of bytes copied. An equivalent JSB entry is available, with R0 being the first argument, R1 the second, and R2 the third. The length argument is passed in bits 15:0 of R0.
SS$_NORMAL Routine successfully completed. All characters in the input string were copied to the destination string. LIB$_STRTRU Routine successfully completed. String truncated. The destination string could not contain all of the characters copied from the source string. LIB$_FATERRLIB Fatal internal error. An internal consistency check has failed. This usually indicates an internal error in the Run-Time Library and should be reported to your Compaq support representative. LIB$_INSVIRMEM Insufficient virtual memory. Your program has exceeded the image quota for virtual memory. LIB$_INVSTRDES Invalid string descriptor. A string descriptor has an invalid value in its CLASS field.
The Copy Source String Passed by Reference to Destination String routine copies a source string passed by reference to a destination string, passed by descriptor.
LIB$SCOPY_R_DX_64 quad-integer-source-length ,source-string ,destination-string
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
quad-integer-source-length
OpenVMS usage: quadword_unsigned type: quadword (unsigned) access: read only mechanism: by reference
Length of the source string in bytes. The quad-integer-source-length argument is the address of an unsigned quadword that contains the length of the source string.source-string
OpenVMS usage: char_string type: character string access: read only mechanism: by reference
Source string to be copied to the destination string by LIB$SCOPY_R_DX_64. The source-string argument is the address of this source string.destination-string
OpenVMS usage: char_string type: character string access: write only mechanism: by descriptor
Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string.
LIB$SCOPY_R_DX_64 copies a source string, passed by reference, to a destination string, passed by descriptor. It returns the status as a condition value. Truncation is a qualified success; LIB$SCOPY_R_DX_64 sets bit 0 of the condition value to 1.The actions taken by LIB$SCOPY_R_DX_64 depend on the descriptor class of the destination string. The following table describes these actions for each descriptor class:
Descriptor Class Action S, Z, SD, A, NCA Copy the source string. If needed, space fill or truncate on the right. D If the area specified by the destination descriptor is large enough to contain the source string, copy the source string and set the new length in the destination descriptor. If the area specified is not large enough, return the previous space allocation, if any, and then dynamically allocate the amount of space needed. Copy the source string and set the new length and address in the destination descriptor. VS Copy source string to destination string up to the limit of the descriptor's MAXSTRLEN field with no padding. Readjust the string's current length (CURLEN) field to the actual number of bytes copied.
SS$_NORMAL Routine successfully completed. All characters in the input string were copied to the destination string. LIB$_STRTRU Routine successfully completed. String truncated. The destination string could not contain all of the characters copied from the source string. LIB$_FATERRLIB Fatal internal error. An internal consistency check has failed. This usually indicates an internal error in the Run-Time Library and should be reported to your Compaq support representative. LIB$_INSVIRMEM Insufficient virtual memory. Your program has exceeded the image quota for virtual memory. LIB$_INVSTRDES Invalid string descriptor. A string descriptor has an invalid value in its CLASS field.
The Set Logical Name routine requests the calling process's command language interpreter (CLI) to define or redefine a supervisor-mode process logical name. It provides the same function as the DCL command DEFINE.
LIB$SET_LOGICAL logical-name [,value-string] [,table] [,attributes] [,item-list]
Either the item-list or value-string argument must be specified. If both item-list and value-string are specified, the value-string argument is ignored.
OpenVMS usage: cond_value type: longword (unsigned) access: write only mechanism: by value
logical-name
OpenVMS usage: logical_name type: character string access: read only mechanism: by descriptor
Logical name to be defined or redefined. The logical-name argument contains the address of a descriptor pointing to this logical name string. The maximum length of a logical name is 255 characters. Note that logical names are case sensitive.value-string
OpenVMS usage: char_string type: character string access: read only mechanism: by descriptor
Value to be given to the logical name. The value-string argument contains the address of a descriptor pointing to this value string. The maximum length of a logical name value is 255 characters.If omitted, an item list must be present to specify the values of the logical name.
table
OpenVMS usage: char_string type: character string access: read only mechanism: by descriptor
Name of the table in which to create the logical name. The table argument contains the address of a descriptor pointing to the logical name table. If no table is specified, LNM$PROCESS is used as the default.attributes
OpenVMS usage: mask_longword type: longword (unsigned) access: read only mechanism: by reference
Logical name or translation attributes. The attributes argument is the address of a longword bit mask that contains the logical name or translation attributes.LNM$M_CONFINE and LNM$M_NO_ALIAS are currently available logical name attributes. See the description of the $CRELNM system service in the OpenVMS System Services Reference Manual: A--GETUAI for definitions of LNM$M_CONFINE and LNM$M_NO_ALIAS. If omitted, no special logical name attribute is established.
If no item-list is specified, the translation attributes LNM$M_CONCEALED and LNM$M_TERMINAL may be specified. See the description of the ASSIGN command in the OpenVMS DCL Dictionary for definitions of these attributes. If an item-list is specified, it will contain the translation attributes for each equivalence string in the attribute.
item-list
OpenVMS usage: item_list_3 type: unspecified access: read only mechanism: by reference, array reference
Item list describing the equivalence names for this logical name. The item-list argument contains the address of an array that contains this item list. If item-list is not specified, the logical name will have only one value, as specified in the value-string argument. Item codes for use with this item list are included in libraries supplied by Compaq in module $LNMDEF.Either value-string or item-list must be specified. If neither is specified, the LIB$_INVARG error is produced. If both value-string and item-list are specified, the value-string argument is ignored.
If item-list is specified, only logical name attributes are permitted. Translation attributes appear in the item list.
The item-list argument is needed only when you want to create multiple equivalence strings for a single logical name.
If the optional table argument is defined, the logical name will be placed in the table specified by the table argument; otherwise, the logical name is placed in the LNM$PROCESS table.Unlike the system services $CRELOG and $CRELNM, LIB$SET_LOGICAL does not require the caller to be executing in supervisor mode to define a supervisor-mode logical name. Supervisor-mode logical names are not deleted when an image exits. A program can obtain the current value of any logical name by calling the system service $TRNLNM. For more information on logical names, see the OpenVMS System Services Reference Manual.
This routine is supported for use with the DCL and MCR CLIs. If an image is run directly as a subprocess or as a detached process, there is no CLI present to perform this function. In that case, the error status LIB$_NOCLI is returned.
This routine does not support the DCL DEFINE and DEASSIGN commands' special side-effect of opening and closing a process-permanent file if the logical name SYS$OUTPUT is specified.
See the OpenVMS DCL Dictionary for a description of the DEFINE command.
SS$_NORMAL Routine successfully completed. SS$_ACCVIO Access violation. The logical name or its value could not be read. SS$_BADPARAM Bad argument. SS$_BUFFEROVF Routine successfully completed; however, a buffer overflow occurred. SS$_INSFMEM Insufficient dynamic memory. SS$_IVLOGNAM Invalid logical name. The logical name or its value contained more than 255 characters. SS$_IVLOGTAB Invalid logical name table. SS$_NOPRIV No privileges for attempted operation. SS$_SUPERSEDE Routine successfully completed; the previous definition of the logical name was replaced. SS$_TOOMANYLNAM Logical name translation exceeded allowed depth. LIB$_INVARG Neither the value-string nor the item-list argument was specified. LIB$_INVSTRDES Invalid string descriptor. LIB$_NOCLI No CLI present to perform function. The calling process did not have a CLI to perform the function or the CLI did not support the request type. Note that an image run as a subprocess or detached process does not have a CLI. LIB$_UNECLIERR Unexpected CLI error. The CLI returned an error status which was not recognized. This error may be caused by use of a nonstandard CLI. If this error occurs while using the DCL command language interpreter, please report the problem to your Compaq support representative.
!+ ! Initialize value for logical name MY_LOG !- SYMBOL$ = 'MY_LOG' SETVAL$ = 'OFF' CALL LIB$SET_LOGICAL (SYMBOL$, SETVAL$) END |
The BASIC program above sets the logical MY_LOG to OFF. This value can be displayed after the program is run with SHOW LOGICAL as follows:
$ SHOW LOGICAL MY_LOG "MY_LOG" = "OFF" (LNM$PROCESS_TABLE)
Previous | Next | Contents | Index |
privacy and legal statement | ||
5932PRO_037.HTML |