Library /sys$common/syshlp/helplib.hlb  —  SOR Routines, SOR$PASS_FILES
    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]

1  –  Returns

    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.

2  –  Arguments

 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-HP 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.

3  –  Description

    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.
Close Help