VMS Help  —  WRITE
    Writes the specified data as one record to an open file specified
    by a logical name.

    All qualifiers must precede all data item expressions.

    Format

      WRITE  logical-name expression[,...]

1  –  Parameters

 logical-name

    Specifies the logical name assigned to the output file. Use the
    logical name assigned by the OPEN command. In interactive mode,
    specify the process-permanent files identified by the logical
    names SYS$INPUT, SYS$OUTPUT, SYS$ERROR, and SYS$COMMAND. (The
    OPEN command assigns a logical name to a file and places the name
    in the process logical name table.)

 expression[,...]

    Specifies data to be written as a single record to the output
    file. You can specify data items using character string
    expressions, which may be symbol names, character strings in
    quotation marks (" "),  literal numeric values, or a lexical
    function. For more information on string expressions, see the
    OpenVMS User's Manual.

    You can specify a list of expressions separated by commas (,);
    the command interpreter concatenates the items into one record
    and writes the record to the output file.

    The maximum size of any record that can be written is less than
    1024 bytes, and the value of any symbol that is specified as part
    of a record cannot exceed 255 characters; however, if you specify
    the /SYMBOL qualifier, the maximum record size is 2048 bytes and
    the value of a symbol can exceed 255 characters.

2  –  Qualifiers

2.1    /ERROR

       /ERROR=label

    Transfers control on an I/O error to the location specified by
    label (in a command procedure). If no error routine is specified
    and an error occurs during the writing of the file, the current
    ON condition action is taken. The /ERROR qualifier overrides any
    ON condition action specified. If an error occurs and control
    passes successfully to the target label, the reserved global
    symbol $STATUS retains the error code.

2.2    /SYMBOL

    Causes the expression to be interpreted and its expanded value
    placed in a 2048-byte (instead of a 1024-byte) buffer before
    the write operation is performed. If you specify multiple
    expressions, their values are concatenated and placed in the
    2048-byte buffer. Use the /SYMBOL qualifier to write a very large
    record.

    If you do not use the /SYMBOL qualifier, the entire command,
    including the expression or expressions, is placed in a 1024-byte
    buffer.

2.3    /UPDATE

    Replaces the last record read with the record specified with the
    expression parameter. You must be able to read and write to a
    file to use the /UPDATE qualifier. Use the WRITE/UPDATE command
    only after a READ command. The WRITE/UPDATE command modifies the
    last record you have read.

    With sequential files, you must replace a record with another
    record of the same size when you use the WRITE/UPDATE command.

2.4    /WAIT

       /WAIT (default)
       /NOWAIT

    If you specify /NOWAIT, the Put service to a mailbox device uses
    the IO$M_NOW modifier, which causes the operation to complete
    immediately instead of synchronizing with another reader of the
    mailbox.

    Currently this qualifier is supported on Alpha and Integrity
    servers only.

3  –  Examples

    1.$ WRITE SYS$OUTPUT "Beginning second phase of tests"

      The WRITE command writes a single line of text to the current
      output device.

    2.$ OPEN/APPEND OUTPUT_FILE TRNTO::DKA1:[PGM]PLAN.DAT
      $ WRITE OUTPUT_FILE "BEGINNING PHASE 3"

      In this example, the OPEN/APPEND command opens the file
      PLAN.DAT at the remote node TRNTO and positions the pointer
      at the end of the file. The WRITE command writes a record to
      the end of the file PLAN.DAT.

    3.$ OPEN/WRITE OUTPUT_FILE TESTFILE.DAT
      $ INQUIRE ID "Assign Test-id Number"
      $ WRITE/ERROR=WRITE_ERROR  OUTPUT_FILE  "Test-id is ",ID
      $ WRITE/ERROR=WRITE_ERROR  OUTPUT_FILE  ""
      $ !
      $ WRITE_LOOP:
         .
         .
         .
      $ GOTO WRITE_LOOP
      $ END_LOOP:
      $ !
      $ CLOSE OUTPUT_FILE
      $ PRINT TESTFILE.DAT
      $ EXIT
      $ !
      $ WRITE_ERROR:
      $ WRITE SYS$OUTPUT "There was a WRITE error."
      $ CLOSE OUTPUT_FILE
      $ EXIT

      In this example, the OPEN command opens the file TESTFILE.DAT;
      the INQUIRE command requests an identification number to be
      assigned to a particular run of the procedure. The number
      entered is equated to the symbol ID. The WRITE commands write
      a text line concatenated with the symbol name ID and a blank
      line.

      The lines between the label WRITE_LOOP and END_LOOP process
      information and write additional data to the file. When the
      processing is finished, control is transferred to the label
      END_LOOP. The CLOSE and PRINT commands at this label close the
      output file and queue a copy of the file to the system printer.

      The label WRITE_ERROR is used as the target of the /ERROR
      qualifier to the WRITE command; if an error occurs when a
      record is being written, control is transferred to the label
      WRITE_ERROR.

    4.$ OPEN/APPEND MYFILE [LAMPERT]TESTING.DAT
      $ WRITE/SYMBOL MYFILE A,B,C

      This example assumes that the symbols A, B, and C have
      already been defined. The OPEN/APPEND command opens the file
      [LAMPERT]TESTING.DAT and positions the pointer at the end of
      the file. The WRITE/SYMBOL command concatenates the values of
      the symbols A, B, and C and writes this data to a new record at
      the end of the file.
Close Help