Guardian Procedure Calls Reference Manual
Considerations
CAUTION: Passing an invalid file name or file-name pattern to this procedure can result in a
trap, a signal, or data corruption. To verify that a file name or file-name pattern is valid, use the
FILENAME_SCAN_ procedure.
• FILENAME_RESOLVE_ performs the principal steps of its operation in this order.
If the caller supplied the name of an existing DEFINE in override-name, it substitutes
the DEFINE name for partialname.
1.
2. If the criteria for doing a search are met, it performs a search.
3. If the caller specified the appropriate options, it resolves or reduces DEFINEs.
4. It applies default values and resolves LDEVs.
5. It changes the result to upper case.
• options.<14> specifies that a single name part supplied in partialname be treated as a
subvolume name or pattern. This means that the input string "f" is resolved to the form
"\SYS.$VOL.f". Without this option, "f" would be resolved to "\SYS.$VOL.SUBV.f".
• The name $RECEIVE is never expanded with a node name.
• FILENAME_RESOLVE_ does not modify DEFINE names except to change them to upper case.
It also does not check DEFINE names in partialname for existence, except as noted under
options bits 11 and 12.
• If you are using FILENAME_RESOLVE_ to obtain a file name in standard form (to use as a
key, for instance), then you should use options bits 13 (LDEV resolve) and 15 (upper case).
• Override name
The override-name parameter provides a way to allow interactive users to override a
program's normal choice of file name with a CLASS MAP (or other) DEFINE. The programmer
provides the default file name in partial-name and the DEFINE name that the interactive
user would use in override-name.
options.<8> provides a way to automatically generate an override name from the default
name if they are to have a direct correspondence.
• Search lists
If search specifies an existing CLASS SEARCH DEFINE and DEFMODE is ON,
FILENAME_RESOLVE_ can resolve file names by search. The SEARCH DEFINE contains a
sequence of subvolumes to be inspected or names of CLASS DEFAULTS DEFINEs that contain
subvolumes to be inspected.
The search is performed if partialname consists of only the file identifier part of a file name,
that is, if it does not include any delimiters or other special characters (such as . : $ \* ?).
The first subvolume in the DEFINE is checked for the existence of a file with the supplied name,
and if that fails, each of the remaining subvolumes in the SEARCH DEFINE are similarly
checked. If no such file exists in any of the subvolumes, FILENAME_RESOLVE_ returns error
11. (The exception to this is when options.<9> is equal to 1, in which case
FILENAME_RESOLVE_ returns the name as resolved using the first entry in the SEARCH DEFINE.)
If a file is found, its complete name is returned in fullname.
If either the search parameter specifies a DEFINE that is not CLASS SEARCH or the defaults
parameter specifies a DEFINE that is not CLASS DEFAULTS, an error 113 is returned.
FILENAME_RESOLVE_ Procedure 589