Library /sys$common/syshlp/helplib.hlb  —  FDL Routines, FDL$CREATE
    The FDL$CREATE routine creates a file from an FDL specification
    and then closes the file.

    Format

      FDL$CREATE  fdl_desc [,filename] [,default_name] [,result_name]

                  [,fid_block] [,flags] [,stmnt_num] [,retlen] [,sts]

                  [,stv] [,default_fdl_desc]

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

 fdl_desc

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    The fdl_desc argument is one of the following:

    o  A character string descriptor pointing to a file containing
       the FDL specification to be parsed

    o  A character string containing the actual FDL specification

    The choice depends on the application making the call. For
    example, if the application wants to create data files that are
    compatible with a PC application, it might create the following
    FDL file and name it TRANSFER.FDL:

    FILE
            ORGANIZATION            sequential
    RECORD
            FORMAT                  stream_lf

    The application could then include the address of the FDL file as
    the fdl_desc argument to the FDL$PARSE call:

    call fdl$parse transfer.fdl , . . .

    Optionally, the application might code the FDL specification
    itself into the call using a quoted character string as the fdl_
    desc argument:

    call fdl$parse  "FILE; ORG SEQ; FORMAT STREAM_LF;" , . . .

    Note that directly including the FDL specification into the call
    requires you to do the following:

    o  Enclose the fdl_desc argument in quotation marks

    o  Use a semicolon to delimit statements within the fdl_desc
       argument

    o  Assign the symbol FDL$M_FDL_STRING as the flags mask value

 filename

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    Name of the OpenVMS RMS file to be created using the FDL
    specification. The filename argument is the address of a
    character string descriptor pointing to the RMS file name.
    This name overrides the default_name parameter given in the FDL
    specification.

 default_name

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    Default name of the file to be created using the FDL
    specification. The default_name argument is the address of a
    character string descriptor pointing to the default file name.
    This name overrides any name given in the FDL specification.

 result_name

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       write only
    mechanism:    by descriptor-fixed-length string descriptor
    Resultant name of the file created by FDL$CREATE. The result_name
    argument is the address of a character string descriptor that
    receives the resultant file name.

 fid_block

    OpenVMS usage:vector_longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference
    File identification of the RMS file created by FDL$CREATE. The
    fid_block argument is the address of an array of longwords that
    receives the RMS file identification information. The first
    longword contains the FID_NUM, the second contains the FID_
    SEQ, and the third contains the FID_RVN. They have the following
    definitions:

    FID_     The location of the file on the disk. Its value can
    NUM      range from 1 up to the number of files the disk can
             hold.
    FID_     The file sequence number, which is the number of times
    SEQ      the file number has been used.
    FID_     The relative volume number, which is the volume number
    RVN      of the volume on which the file is stored. If the file
             is not stored on a volume set, the relative volume
             number is 0.

 flags

    OpenVMS usage:mask_longword
    type:         longword (unsigned)
    access:       read only
    mechanism:    by reference
    Flags (or masks) that control how the fdl_desc argument is
    interpreted and how errors are signaled. The flags argument is
    the address of a longword containing the control flags (or a
    mask). If you omit this argument or specify it as 0, no flags are
    set. The following table shows the flags and their meanings:

    Flag             Function

    FDL$V_FDL_       Interprets the fdl_desc argument as an FDL
    STRING           specification in string form. By default, the
                     fdl_desc argument is interpreted as the file
                     name of an FDL file.
    FDL$V_LONG_      Returns the RESULT_NAME using the long result
    NAMES            name from a long name access block (NAML). By
                     default, the RESULT_NAME is returned from the
                     short fields of a name access block (NAM) and
                     thus may have a generated specification.

                     This flag is valid for OpenVMS Alpha only.
    FDL$V_SIGNAL     Signals any error. By default, the status code
                     is returned to the calling image.

    By default, an error status is returned rather than signaled.

 stmnt_num

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference
    FDL statement number. The stmnt_num argument is the address
    of a longword that receives the FDL statement number. If the
    routine finishes successfully, the stmnt_num argument is the
    number of statements in the FDL specification. If the routine
    does not finish successfully, the stmnt_num argument receives
    the number of the statement that caused the error. Note that line
    numbers and statement numbers are not the same and that an FDL
    specification in string form has no "lines."

 retlen

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference
    Number of characters returned in the result_name argument. The
    retlen argument is the address of a longword that receives this
    number.

 sts

    OpenVMS usage:longword_unsigned
    type:         longword_unsigned
    access:       write only
    mechanism:    by reference
    RMS status value FAB$L_STS. The sts argument is the address of
    a longword that receives the status value FAB$L_STS from the
    $CREATE system service.

 stv

    OpenVMS usage:longword_unsigned
    type:         longword (unsigned)
    access:       write only
    mechanism:    by reference
    RMS status value FAB$L_STV. The stv argument is the address of
    a longword that receives the status value FAB$L_STV from the
    $CREATE system service.

 default_fdl_desc

    OpenVMS usage:char_string
    type:         character-coded text string
    access:       read only
    mechanism:    by descriptor-fixed-length string descriptor
    The default_fdl_desc argument is one of the following:

    o  A character string descriptor pointing to a file containing
       the default FDL specification to be parsed

    o  A character string containing the actual default FDL
       specification

    See the description of the fdl_desc argument for details.

    This argument allows you to specify default FDL attributes. In
    other words, FDL$CREATE processes the attributes specified in
    this argument unless you override them with the attributes you
    specify in the fdl_desc argument.

    You can code the FDL defaults directly into your program,
    typically with an FDL specification in string form.

3  –  Description

    FDL$CREATE calls the FDL$PARSE routine to parse the FDL
    specification. The FDL specification can be in a file or a
    character string.

    Source
    of FDL
    SpecificatAdvantages         Disadvantages

    FDL       Variability; for   File must be in default directory.
    file      example, if the    Slower.
              specification
              changes
              regularly, you
              can revise the
              file without
              revising the
              calling program.
    Character You do not have    Program must be recoded to change
    string    to be concerned    FDL specification.
              with locating a
              file.
              Faster access.

    If the FDL specification is relatively simple and is not going
    to change, put the FDL specification in a character string as the
    fdl_desc argument to the call.

    FDL$CREATE opens (creates) the specified RMS file and then closes
    it without putting any data in it.

    FDL$CREATE does not create the output file if an error status is
    either returned or signaled.

4  –  Condition Values Returned

    RMS$_NORMAL        Normal successful completion.
    FDL$_ABKW          Ambiguous keyword in statement
                       number<CRLF>reference-text.
    FDL$_ABPRIKW       Ambiguous primary keyword in statement
                       number<CRLF>reference-text.
    FDL$_BADLOGIC      Internal logic error detected.
    FDL$_CLOSEIN       Error closing filename as input.
    FDL$_CLOSEOUT      Error closing filename as output.
    FDL$_CREATE        Error creating filename.
    FDL$_CREATED       Filename created.
    FDL$_CREATED_STM   Filename created in stream format.
    FDL$_FDLERROR      Error parsing FDL file.
    FDL$_ILL_ARG       Wrong number of arguments.
    FDL$_INSVIREM      Insufficient virtual memory.
    FDL$_INVBLK        Invalid RMS control block at virtual address
                       'hex-offset'.
    FDL$_MULPRI        Multiple primary definition in statement
                       number.
    FDL$_OPENFDL       Error opening filename.
    FDL$_OPENIN        Error opening filename as input.
    FDL$_OPENOUT       Error opening filename as output.
    FDL$_OUTORDER      Key or area primary defined out of order in
                       statement number.
    FDL$_READERR       Error reading filename.
    FDL$_RFLOC         Unable to locate related file.
    FDL$_SYNTAX        Syntax error in statement number reference-
                       text.
    FDL$_UNPRIKW       Unrecognized primary keyword in statement
                       number<CRLF> reference-text.
    FDL$_UNQUAKW       Unrecognized qualifier keyword in statement
                       number<CRLF> reference-text.
    FDL$_UNSECKW       Unrecognized secondary keyword in statement
                       number<CRLF> reference-text.
    FDL$_VALERR        Specified value is out of legal range.
    FDL$_VALPRI        Value required on primary in statement number.
    FDL$_WARNING       Parsed with warnings.
    FDL$_WRITEERR      Error writing filename.
    RMS$_ACT           File activity precludes operation.
    RMS$_CRE           Ancillary control process (ACP) file create
                       failed.
    RMS$_CREATED       File was created, not opened.
    RMS$_DNF           Directory not found.
    RMS$_DNR           Device not ready or not mounted.
    RMS$_EXP           File expiration date not yet reached.
    RMS$_FEX           File already exists, not superseded.
    RMS$_FLK           File currently locked by another user.
    RMS$_PRV           Insufficient privilege or file protection
                       violation.
    RMS$_SUPERSEDE     Created file superseded existing version.
    RMS$_WLK           Device currently write locked.
Close Help