☜ | OPEN1995 Version of ANSI (Equivalent to Current ISO Version) of Standard | ☞ |
O[PEN] postcond SP L openargument
openargument | ::= | │ │ │ |
expr [ : openparameters ] @ expratom V L openargument |
│ │ │ |
openparameters | ::= | │ │ │ │ |
deviceparameters [ timeout [ : mnemonicspec ] ] [ deviceparameters ] :: mnemonicspec timeout [ : mnemonicspec ] |
│ │ │ │ |
mnemonicspec | ::= | │ │ │ |
mnemonicspace ( L mnemonicspace ) |
│ │ │ |
mnemonicspace | ::= | expr V mnemonicspacename |
mnemonicspacename | ::= | ident | ┌ │ │ │ └ |
ident digit . - |
┐ │ │ │ ┘ |
... | Note: hyphen |
mnemonicspace specifies the set of controlmnemonics that may be used within format arguments to subsequent Read and Write commands. The mnemonicspace may be an empty string and may not provide any defined controlmnemonics. mnemonicspacenames that start with any character other than "Y" or "Z" are reserved for mnemonicspace definitions registered by the MDC; those that start with "Z" are implementor-specific.
When a mnemonicspec contains a list of mnemonicspaces, the first one determines the active mnemonicspace, which may be changed by a Use command. If the device does not support the mnemonicspace, an error condition occurs with ecode = "M35". If any mnemonicspaces in the mnemonicspec are incompatible, an error occurs with ecode = "M36".
In addition to controlmnemonics a mnemonicspace also defines the valid deviceattributes and devicekeywords which are associated with a device. deviceattributes and devicekeywords which start with the character "Z" are implementor-specific. Associated with each deviceattribute are one or more values which are held in the ssvn ^$Device.
The value of the first expr of each openargument identifies a device (or file or data set). The interpretation of the value of this expr or of any exprs in deviceparameters is left to the implementor. (see 8.2.2 for the syntax specification of deviceparameters.)
The Open command is used to obtain ownership of a device, and does not affect which device is the current device or the value of $IO. (see the discussion of Use in 8.2.23)
For each openargument, the Open command attempts to seize exclusive ownership of the specified device. Open performs this function effectively instantaneously as far as other processes are concerned; otherwise, it has no effect regarding the ownership of devices and the values of the device parameters. If a timeout is present, the condition reported by $Test is the success of obtaining ownership. If no timeout is present, the value of $Test is not changed and process execution is suspended until seizure of ownership has been successfully accomplished by the process that issued the Open command.
Ownership is relinquished by execution of the Close command. When ownership is relinquished, all device parameters are retained. Upon establishing ownership of a device, any parameter for which no specification is present in the openparameters is given the value most recently used for that device; if none exists, an implementor-defined default value is used.
Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.
This page most recently updated on 14-Nov-2023, 21:37:23.
For comments, contact Ed de Moel (demoel@jacquardsystems.com)