VMS Help
SOR Routines, SOR$PASS_FILES
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
The SOR$PASS_FILES routine passes the names of input and output
files and output file characteristics to SORT or MERGE.
Format
SOR$PASS_FILES [inp_desc] [,out_desc] [,org] [,rfm] [,bks]
[,bls] [,mrs] [,alq] [,fop] [,fsz] [,context]
OpenVMS usage:cond_value
type: longword (unsigned)
access: write only
mechanism: by value
Longword condition value. Most utility routines return a
condition value in R0. Condition values that this routine can
return are listed under Condition Values Returned.
inp_desc
OpenVMS usage:char_string
type: character-coded text string
access: read only
mechanism: by descriptor
Input file specification. The inp_desc argument is the address
of a descriptor pointing to the file specification. In the
file interface, you must call SOR$PASS_FILES to pass SORT
the input file specifications. For multiple input files, call
SOR$PASS_FILES once for each input file, passing one input file
specification descriptor each time.
In the mixed interface, if you are using the record interface on
input, pass only the output file specification; do not pass any
input file specifications. If you are using the record interface
on output, pass only the input file specifications; do not pass
an output file specification or any of the optional output file
arguments.
out_desc
OpenVMS usage:char_string
type: character-coded text string
access: read only
mechanism: by descriptor
Output file specification. The out_desc argument is the address
of a descriptor pointing to the file specification. In the file
interface, when you call SOR$PASS_FILES, you must pass the output
file specification. Specify the output file specification and
characteristics only once, as part of the first call, as in the
following:
Call SOR$PASS_FILES(Input1,Output)
Call SOR$PASS_FILES(Input2)
Call SOR$PASS_FILES(Input3)
In the mixed interface, if you are using the record interface on
input, pass only the output file specification; do not pass any
input file specifications. If you are using the record interface
on output, pass only the input file specifications; do not pass
an output file specification or any of the optional output file
arguments.
org
OpenVMS usage:byte_unsigned
type: byte (unsigned)
access: read only
mechanism: by reference
File organization of the output file, if different from the
input file. The org argument is the address of a byte whose value
specifies the organization of the output file; permissible values
include the following:
FAB$C_SEQ
FAB$C_REL
FAB$C_IDX
For the record interface on input, the default value is
sequential. For the file interface, the default value is the
file organization of the first input file for record or tag sort
and sequential for address and index sort.
For more information about OpenVMS RMS file organizations, see
the OpenVMS Record Management Services Reference Manual.
rfm
OpenVMS usage:byte_unsigned
type: byte (unsigned)
access: read only
mechanism: by reference
Record format of the output file, if different from the input
file. The rfm argument is the address of a byte whose value
specifies the record format of the output file; permissible
values include the following:
FAB$C_FIX
FAB$C_VAR
FAB$C_VFC
For the record interface on input, the default value is variable.
For the file interface, the default value is the record format
of the first input file for record or tag sort and fixed format
for address or index sort. For the mixed interface with record
interface on input, the default value is variable format.
For more information about OpenVMS RMS record formats, see the
OpenVMS Record Management Services Reference Manual.
bks
OpenVMS usage:byte_unsigned
type: byte (unsigned)
access: read only
mechanism: by reference
Bucket size of the output file, if different from the first input
file. The bks argument is the address of a byte containing this
size. Use this argument with relative and indexed-sequential
files only. If the bucket size of the output file is to differ
from that of the first input file, specify a byte to indicate the
bucket size. Acceptable values are from 1 to 32. If you do not
pass this argument-and the output file organization is the same
as that of the first input file-the bucket size defaults to the
value of the first input file. If the file organizations differ
or if the record interface is used on input, the default value is
1 block.
bls
OpenVMS usage:word_unsigned
type: word (unsigned)
access: read only
mechanism: by reference
Block size of a magnetic tape output file. The bls argument is
the address of a word containing this size. Use this argument
with magnetic tapes only. Permissible values range from 20
to 65,532. However, to ensure compatibility with non-Digital
systems, ANSI standards require that the block size be less than
or equal to 2048.
The block size defaults to the block size of the input file
magnetic tape. If the input file is not on magnetic tape,
the output file block size defaults to the size used when the
magnetic tape was mounted.
mrs
OpenVMS usage:word_unsigned
type: word (unsigned)
access: read only
mechanism: by reference
Maximum record size for the output file. The mrs argument is the
address of a word specifying this size. Following are acceptable
values for each type of file:
File
Organization Acceptable Value
Sequential 0 to 32,767
Relative 0 to 16,383
Indexed 0 to 16,362
sequential
If you omit this argument or if you specify a value of 0, SORT
does not check maximum record size.
If you do not specify this argument, the default is based on the
output file organization and format, unless the organization is
relative or the format is fixed. The longest output record length
is based on the longest calculated input record length, the type
of sort, and the record format.
alq
OpenVMS usage:longword_unsigned
type: longword (unsigned)
access: read only
mechanism: by reference
Number of preallocated output file blocks. The alq argument is
the address of a longword specifying the number of blocks you
want to preallocate to the output file. Acceptable values range
from 1 to 4,294,967,295.
Pass this argument if you know your output file allocation will
be larger or smaller than that of your input files. The default
value is the total allocation of all the input files. If the
allocation cannot be obtained for any of the input files or
if the record interface is used on input, the file allocation
defaults to 1000 blocks.
fop
OpenVMS usage:mask_longword
type: longword (unsigned)
access: read only
mechanism: by reference
File-handling options. The fop argument is the address of a
longword whose bit settings determine the options selected. For
a list of valid file-handling options, see the description of
the FAB$L_FOP field in the OpenVMS Record Management Services
Reference Manual. By default, only the DFW (deferred write)
option is set. If your output file is indexed, you should set
the CIF (create if) option.
fsz
OpenVMS usage:byte_unsigned
type: byte (unsigned)
access: read only
mechanism: by reference
Size of the fixed portion of VFC records. The fsz argument is the
address of a byte containing this size. If you do not pass this
argument, the default is the size of the fixed portion of the
first input file. If you specify the VFC size as 0, RMS defaults
the value to 2 bytes.
context
OpenVMS usage:context
type: longword (unsigned)
access: write only
mechanism: by reference
Value that distinguishes between multiple concurrent SORT/MERGE
operations. The context argument is the address of a longword
containing the context value. When your program makes its first
call to a SORT/MERGE routine for a particular sort or merge
operation, the context longword must equal zero. SORT/MERGE
then stores a value in the longword to identify the operation
just initiated. When you make subsequent routine calls for the
same operation, you must pass the context value supplied by
SORT/MERGE.
The SOR$PASS_FILES routine passes input and output file
specifications to SORT. The SOR$PASS_FILES routine must be
repeated for multiple input files. The output file name string
and characteristics should be specified only in the first call to
SOR$PASS_FILES.
This routine also accepts optional arguments that specify
characteristics for the output file. By default, the output file
characteristics are the same as the first input file; specified
output file characteristics are used to change these defaults.
Some of the following condition values are used with different
severities, depending on whether SORT/MERGE can recover. Thus,
if you want to check for a specific status, you should use
LIB$MATCH_COND.
4 - Condition Values Returned
|
SS$_NORMAL Normal successful completion.
SOR$_DUP_OUTPUT Output file has already been specified.
SOR$_ENDDIAGS Completed with diagnostics.
SOR$_INP_FILES Too many input files specified.
SOR$_NYI Not yet implemented.
SOR$_SORT_ON Sort or merge routine called in incorrect
order.
SOR$_SYSERROR System service error.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.