Document revision date: 19 July 1999
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS documentation]

OpenVMS DCL Dictionary


Previous Contents Index


WAIT

Places a process into a wait state for the specified amount of time. The WAIT command is used in a command procedure to delay processing of either the procedure itself or a set of commands in the procedure.

Format

WAIT delta-time


Parameter

delta-time

Specifies a delta time interval in the following format. (A delta time is an offset from the current time to a time in the future.)

hour:minute:second.hundredth 

The fields on the format line indicate the following:
hour Specifies an integer in the range 0 to 23.
minute Specifies an integer in the range 0 to 59.
second Specifies an integer in the range 0 to 59.
hundredth Specifies an integer in the range 0 to 99.

The colons (:) and period (.) are required delimiters; also, the delta time must begin with the number of hours and not a colon. Note that the days field, usually included in the delta time format, must be omitted here.

For more information on specifying delta time values, refer to the OpenVMS User's Manual or the online help topic DCL_Tips (subtopic Date_Time).

Note that if you enter the WAIT command interactively, you are not prompted for a time value. However, in order for the command to have any effect, you must supply a time value.


Description

If you enter the WAIT command interactively, your current process is placed in a wait state and you cannot enter any more commands until the waiting period is over. (You can, however, receive unsolicited messages from other processes.) Press Ctrl/C or Ctrl/Y to restore normal terminal interaction.

Example


$ LOOP:
$ RUN KUDOS
$ WAIT 00:10
$ GOTO LOOP
      

In this example, the command procedure executes the program image KUDOS. After the RUN command executes the program, the WAIT command delays execution of the GOTO command for 10 minutes. Note that 00 is specified for the number of hours, because the time specification cannot begin with a colon. After 10 minutes, the GOTO command executes, and the procedure transfers control to the label LOOP and executes the program ALPHA again. The procedure loops until it is interrupted or terminated.

If the procedure is executed interactively, terminate it by pressing Ctrl/C or Ctrl/Y and by entering the STOP command or another DCL command that runs a new image in the process. If the procedure is executed in a batch job, enter the DELETE/ENTRY command to terminate it.


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[,...]


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, refer to 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.


Description

The WRITE command can write records to sequential, relative, or indexed files that have been opened for writing. When the WRITE command writes a record, it always positions the record pointer after the record just written.

To write to a file, the file must be opened by using either the /WRITE or the /APPEND qualifier with the OPEN command. However, the process-permanent files identified by the logical names SYS$INPUT, SYS$OUTPUT, SYS$ERROR, and SYS$COMMAND do not have to be opened explicitly to be written to.

If you do not specify the /SYMBOL qualifier, DCL places the command and the complete string expression (expanded if it was specified as one or more symbols) in a 1024-byte buffer. If you specify the /SYMBOL qualifier, DCL interprets the symbol or symbols and places the expanded string in a separate 2048-byte buffer, and then performs the write operation. For this reason, use the /SYMBOL qualifier where the record contains approximately 1000 bytes or more.


Qualifiers

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

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

Each expression specified must be a symbol. You cannot specify character string expressions (that is, strings in quotation marks) with the /SYMBOL qualifier.

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

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


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::DBA1:[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 [JONES]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 [JONES]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.


Appendix A
Obsolete Commands

Table A-1 lists the obsolete DCL commands and the current services that replace them. For descriptions of the obsolete commands, see online help.

Table A-1 Obsolete Commands
Obsolete Command Replaced by
SET ACL SET SECURITY/ACL
SET PROTECTION SET SECURITY/PROTECTION
SET PROTECTION/DEVICE SET SECURITY/PROTECTION/CLASS=DEVICE
SET UIC Not replaced.
SHOW ACL SHOW SECURITY


Index Contents

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
9996PRO_079.HTML