HP 3000 Manuals

FOPEN (contd) [ MPE/iX Intrinsics Reference Manual ] MPE/iX 5.0 Documentation


MPE/iX Intrinsics Reference Manual

FOPEN (contd) 

=||5:2||Multiaccess mode option

Indicates how the file's record pointer is to be shared.  This option is
useful for sharing standard input devices where there is some natural
sequence of access to the file.  This option permits processes located in
different jobs or sessions to open the same file and share that file's
record pointer.

The following bit settings are valid:

00   No MULTI access.  A unique record pointer is created for this access
     to the file.

     For message files, the default value of bits (5:2) is 10 for normal
     access, or is 00 for copy mode access.

01   Intrajob MULTI access only allowed.  A record pointer is shared with
     all other opened files of the same name in the same job/session who
     opened the file with this option set to either 01 or 10.

10   Interjob MULTI access allowed.  A record pointer is shared with all
     other opened files of the same name on the system.

Default:  0

(ASC) Not valid for asynchronous device files.

=||4:1||Nowait I/O option

Enables/disables nowait I/O. Determines whether or not the accessor has
control returned before the completion of an I/O request.  The nowait I/O
implies the inhibit buffering option (aoption bit (7:1)); if NOBUF is not
specified, the file system does it for you and multirecord access is not
available.  This option is not available if the file is located on a
remote computer.  When opening nonmessage files, the process must be
running in privileged mode to specify this option.

The following bit settings are valid:

0    Nowait I/O not in effect

1    Nowait I/O in effect

Default:  0

Nowait I/O cannot be specified for directories.

=||3:1||Copy mode option

Determines whether a file should be treated as a standard sequential file
(copy by logical record) or physical block (copy to another file).  Copy
must be set to obtain EXCLUSIVE access.  This causes the multiaccess bits
to be set to 00.  The following values are valid:

0    The file is accessed as its own file type.

1    The file is treated as a standard (STD) file, with variable-length
     records.  For message files, this allows nondestructive
     reading of an old message file at either the logical record or
     physical-block-record level.  Only block-level access is permitted
     if the file has message file format.  This prevents incorrectly
     formatted data from being written to the message file while it is
     unprotected.

     In order to access a message file in copy mode, a process must be
     able to obtain EXCLUSIVE access to the file.  If opening the message
     file for read only, the file system tries to grant exclusive access;
     for write only access to the message file, the EXCLUSIVE bits (8:2)
     in the aoptions must be set to 01.

Default:  0

=||0:3||Reserved for the operating system.

recsize               16-bit signed integer by value (optional) 

                      Passes the size, in half words or bytes, of the
                      logical records in the file.  If recsize=0, the
                      system uses the default record size, 256 bytes.
                      Positive values are half words; negative values are
                      bytes.  The valid range is dependent on storage and
                      record formats:

                         *   For fixed-length and undefined-length ASCII
                             files, the valid range is 1..32,767 bytes.

                         *   For variable-length ASCII files and
                             fixed-length, variable-length, and
                             undefined-length binary files, the range is
                             1..32,766 bytes (1..16,383 half words).  All
                             odd values specified are rounded up to the
                             next even value (the next half word
                             boundary).

                      Default:  Device dependent; refer to the Accessing 
                      Files Programmer's Guide (32650-90017) for default
                      record sizes.

device                character array (optional) 

                      Passes a string of ASCII characters terminating
                      with any nonalphanumeric excluding a slash (/) or
                      period (.), designating the device where the file
                      is to reside.  This parameter optionally specifies
                      density for tape files (;DEN= parameter) and/or
                      environment files for certain Hewlett-Packard laser
                      printers (;ENV= parameter), a remote environment
                      (node#), and whether the device is to be allocated
                      on a remote machine (;VTERM).

                      Remote environments (device=node#) cannot be
                      specified for directories, byte streams, or when
                      the formal file designator specifies an escaped
                      pathname.

                      Syntax of the options available through the device 
                      parameter are:

                                    [*        ]
                                    [**vol    ]
                      device=[node#][*volclass]
                                    [devname  ]
                                    [devclass ]

                      [;DEN=density]

                      [;ENV=printenv]

                      [;VTERM]

                        node#      remote environment option

                                 Passes a remote node name to be accessed
                                 through remote file access (RFA). The
                                 node name string must be followed by a
                                 pound character (#) to delimit the
                                 string.  The internal format of the name
                                 must match that defined by the NS
                                 3000/XL subsystem.  Refer to the NS 
                                 3000/XL User/Programmer Reference Manual 
                                 (36920-90001).

                                 Default:  Local file access

                      *          volume set option

                                 Passing only an asterisk character (*)
                                 indicates to FOPEN that the disk file
                                 can span all volumes in the volume set
                                 bound to the group where the file
                                 resides.  No set name is actually
                                 passed.  This option is applicable only
                                 at file creation.

                      **vol      volume name option

                                 Passing a name, preceded by two
                                 asterisks (**), indicates that the disk
                                 file is restricted to the volume whose
                                 name is specified in vol.  The specified
                                 volume must reside within the volume set
                                 bound to the group where the file
                                 resides.  This option is applicable only
                                 at file creation.

                      *volclass  volume class option

                                 Passing a name, preceded by one asterisk
                                 (*), indicates that the disk file is
                                 restricted to the volume class whose
                                 name is specified in volclass.  The
                                 specified volume class must reside
                                 within the volume set bound to the group
                                 where the file resides.  This option is
                                 applicable only at file creation.

                      devname    device name option

                                 Passes the logical device number, in
                                 ASCII format, of a specific device.  The
                                 file is assumed to be permanent.  If the
                                 logical device number of a nonshareable
                                 device is specified, the nonshareable
                                 device must be ready prior to the FOPEN
                                 call.

                                 If the device name option is used to
                                 open a file residing on a disk, specify
                                 the logical device number of the disk
                                 drive where a volume which resides
                                 within the volume set bound to the group
                                 where the file resides is mounted
                                 (applicable only at file creation).
                                 Thereafter, the disk file is associated
                                 with that volume, not with the
                                 originally specified logical device
                                 number.

                      devclass   device class option

                                 Passes a device class name or volume
                                 class name of up to eight alphanumeric
                                 characters beginning with an alpha
                                 character.  For example, TAPE or DISC.
                                 If devclass is specified, the file is
                                 allocated to any available device in
                                 that class.

                                 If the device class option is used to
                                 open a file residing on a disk, specify
                                 a device class name that corresponds to
                                 a valid and mounted volume class name;
                                 otherwise, it is assumed that the
                                 attempt is to open a device file not a
                                 disk file.  Applicable only at file
                                 creation.  The specified volume class
                                 must reside within the volume set bound
                                 to the group where the file resides.
                                 The file is free to span any of the
                                 volumes that fall within the specified
                                 volume class.


NOTE If either volumeset, vol, volclass, devname, or devclass is not specified, FOPEN defaults to a disk file located on the volume class DISC bound to the group where the file resides. The file is free to span all volumes in the volume class DISC. When opening a magnetic tape that is shared for a second time, open the device with the device name option instead of device class option. This ensures that the system operator is not confused by a second tape request.
;DEN= tape density option density Passes the tape density to be used while writing to a tape file. This option is applicable only when writing to a tape on a drive that supports more than one density. When reading from a tape, the density of the tape overrides the density value specified. To specify density when writing to the tape file, use the keyword ;DEN=. Default: The highest density available on the device opened ;ENV= printer environment option printenv Passes the name of a file that contains a printer environment. Valid only for specified printers. If opening an Hewlett-Packard 268x page printer file, an optional printing environment can be specified for the job. The printing environment is defined as all of the characteristics of the printed page that are not part of the data itself, including the page size, the margin width, the character set, the orientation (horizontal or vertical), and the name of the forms to use. If an environment file is not specified, the file system selects a default printer environment. To specify a printer environment, assign the keyword ;ENV=, followed by the name of the environment file, to the device parameter in the form ;ENV=printenv. Any environment selected remains active until replaced by a new environment or a call FCLOSE to close the printer. Default: No printer environment file specified ;VTERM reverse VT option Indicates that the specified device name is allocated on a remote machine. Specify the remote location of a device with the device parameter as VTERM. Specify the remote environment in the same open request, using either the formaldesig parameter or the remote environment option (see node# above) of the device parameter. Reverse VT is almost the same as a terminal opened up through remote file access, except that no session is required on the remote machine. Default: No reverse VT formmsg character array (optional) Passes a forms message that can be used for sending messages (for example, telling the system operator what type of paper to use in the line printer) The message is a string of ASCII characters terminated by a period. The maximum number of characters allowed is 49, including the terminating period; more than 49 characters are truncated. Used for tape label information if bit (6:1) of the foption parameter is set. The tape label information is formatted as follows: .[volid[,type[,exp[,seq]]]]; The period is required so that the tape label information is not mistaken for a forms message. volid Volume identifier, consisting of <=6 printable characters. In a multivolume set, specify only the first volid. type Label type, identified by three alphabetic characters: ANS - ANSI standard labels (default) IBM - IBM standard labels exp Month/day/year of the file expiration date or the date when the file information is no longer valid. The file can be overwritten after this date. If the default is 00/00/00, the file can be overwritten immediately. In a volume set, file expiration dates must be equal to or earlier than the date on the previous file. seq Use one of the following methods to specify the position of the file in relation to other files on the tape: * A zero, which causes a search of all volumes until the file is found. * An unsigned integer (1-9999), which specifies the position of the file relative to the current file on the tape. * ADDF which causes the tape to be positioned to add a new file on the end of the volume (or last volume in a multivolume set). * NEXT which positions the tape at the next file on the tape. If this is not the first FOPEN for the file and a rewind occurred on the last close, then the position remains at the beginning of the previous file. Default: NEXT (KSAM) Contains a description of the primary key and up to 15 alternate keys: * If a new file is being created, this parameter must be specified. * If this is an existing file, check flagword field to see if the default values are acceptable; if not acceptable, specify this field explicitly. For KSAM XL files, refer to the Using KSAM XL (32650-90168) for a complete description of this parameter. For KSAM/3000 files, refer to the KSAM/3000 Reference Manual (30000-90079) for a complete description of this parameter. userlabels 16-bit signed integer by value (optional) Passes the number, in the range 0..254, of user-label records to be created for the file. Applicable to new disk files only. Default: 0 (ASC) Not valid for asynchronous device files. blockfactor16-bit signed integer by value (optional) Passes the number of logical records in one physical record (block). This value is used to calculate the physical record size for disk and magnetic tape files. The valid range for this option is 1..255. If a value greater than 255 is specified, FOPEN resets the value to 255. If a value less than 1 is specified, FOPEN resets the value to the default blockfactor setting. For fixed-length records, blockfactor specifies the actual number of records in a block. For variable-length records, blockfactor is interpreted as a multiplier used to compute the block size (recsize*blockfactor). For undefined-length records, blockfactor is always one logical record per block. Default: For files opened BUF, the default is calculated by dividing the specified recsize into the physical record size (block size) configured for the device. For files opened NOBUF, the default is 1. (ASC) Not valid for asynchronous device files. numbuffer 16-bit signed integer by value (optional) Passes the number of buffers, number of copies, and output priority indicated by setting the following bits: Bits Value/Meaning 11:5 Numbuffers Indicates the number of buffers to allocate to the file. The valid range is dependent on file type: * For standard files, the valid range is 1..31. * For circular and RIO files, the valid range is 1..16. * For message files, the valid range is 2..16 (if a 1 is specified, the file system sets this option to 2 and no error is returned). * For KSAM/3000 files, the valid range is 1..20. * Not used for KSAM XL files. This option is ignored for standard disk files, useful only for slow devices (such as tapes) used in a buffered mode, and is not applicable for files representing interactive terminals. This option must not specify a number of buffers whose combined size exceeds the physical capacity of the file. Default: 00010 (decimal 2) 4:7 Spooler copies Indicates the number of copies of the file to be produced by the spooling facility. The valid range is 0...127. This option is applicable to spooled devices only. Specify this option for a file already opened (for example, $STDLIST), this is the highest value supplied before the last FCLOSE takes effect. The copies do not appear continuously if the system operator intervenes or if a file of higher output priority is ready before the last copy is complete. Default: 0000001 (decimal 1) Table 4-8. (cont.) Bits Value/Meaning 0:4 Output priority Indicate the output priority to be attached to the file for spooled output. Applicable only to spooled devices. The valid range for this option is the binary equivalent of 1..13. The output priority must be a number between 1 (lowest priority) and 13 (highest priority), inclusive. If a value less than the current outfence set by the system operator is specified, file printing is deferred until the operator raises the output priority of the file or lowers the outfence. Specify this option for a file already opened (for example, $STDLIST), the highest value supplied before the last FCLOSE takes effect. Default: 1000 (decimal 8) filesize 32-bit signed integer by value (optional) Passes the maximum file capacity. For variable-length records, the capacity is expressed in blocks (block = recordsize * blockfactor). For fixed-length and undefined-length records, the capacity is expressed in logical records: * The maximum file size for standard and KSAM XL files is 4,294,901,759 bytes (4 gigabytes less 64K bytes). * The maximum file size for RIO, circular, and message files is dependent upon both the record size and number of extents defined for the file: * For circular and RIO files, a maximum file size of 500 megabytes is possible if recsize=256 bytes and numextent=32. * For message files, a maximum file size of 500 megabytes is possible if recsize=128 bytes and numextent=32. Applicable only at file creation. Default: 1023 records (ASC) Not valid for asynchronous device files. numextent 16-bit signed integer by value (optional) Passes a value in the range 1..32 that determines the number of extents for the file. If a value of 1 and an initialloc value of 1 is specified, the file is created as one contiguous extent of disk space. If a value >1 is specified, a variable number of extents (with varying extent sizes) is allocated on a need basis. Applicable only at file creation. Default: >8 extents (ASC) Not valid for asynchronous device files. initialloc 16-bit signed integer by value (optional) Passes an integer value in the range 1..32 that determines the number of extents to be allocated to the file initially. Applicable only at file creation. Default: 1 (ASC) Not valid for asynchronous device files. filecode 16-bit signed integer by value (optional) Passes a value that can be used as a file code to identify the type of file. This code is recorded in the file label and is accessible through the FFILEINFO intrinsic. Applicable only at file creation (except when opening an old file that has a negative file code). If the program is running in user mode, specify a file code in the range 0..32,767 to indicate the file type being created; programs running in user mode can access files with non-negative file codes. If the program is running in privileged mode, specify a file code in the range -32,768..32,767; programs running in privileged mode can access files with a file code in the range -32,768..32,767. If an old file with a negative file code is opened, the file code specified must match the file code in the file label. Negative file codes are only allowed for file in MPE groups. Default: 0 (ASC) Not valid for asynchronous device files. Table 4-9. FOPEN/HPFOPEN Parameter Equivalents --------------------------------------------------------------------------------------------- | | | | FOPEN Parameter | HPFOPEN Itemnum,Item | | | | --------------------------------------------------------------------------------------------- | | | | filenum (functional return) | filenum (parameter) | | | | --------------------------------------------------------------------------------------------- | | | | formaldesig | 2,formaldesig | | | | --------------------------------------------------------------------------------------------- | | | | foption: | | | Bits (14:2) Domain | | | Bit (13:1) ASCII/binary | | | Bits (10:3) File designator | | | Bits (8:2) Record format | 3, domain | | Bit (7:1) Carriage-control | | | Bit (6:1) Labeled tape | 53, ASCII/binary | | Bit (5:1) Disallow file equation | | | Bits (2:3) File type | 5, file designator | | | | | | 6, record format | | | | | | 7, carriage-control | | | | | | 8, labeled tape | | | | | | 9, disallow file equation | | | | | | 10, file type | | | | --------------------------------------------------------------------------------------------- | | | | aoption: | | | Bits (12:4) Access type | | | Bit (11:1) Multirecord | | | Bit (10:1) Dynamic locking | | | Bits (8:2) Exclusive | 11, access type | | Bit (7:1) Inhibit buffering | | | Bits (5:2) Multiaccess mode | 15, multirecord | | Bit (4:1) Nowait I/O | | | Bit (3:1) File copy | 12, dynamic locking | | | | | | 13, exclusive | | | | | | 46, inhibit buffering | | | | | | 14, multiaccess mode | | | | | | 16, nowait I/O | | | | | | 17, file copy | | | | --------------------------------------------------------------------------------------------- | | | | recsize | 19, record size | | | | --------------------------------------------------------------------------------------------- | | | | device | 20, device name | | | | | | 22, volume class | | | | | | 23, volume name | | | | | | 24, density | | | | | | 25, printer environment | | | | | | 26, remote environment | | | | | | 42, device class | | | | | | 48, reverse VT | | | | --------------------------------------------------------------------------------------------- | | | | formmsg | 8, labeled tape label | | | | | | 28, spooled message | | | | | | 30, labeled tape type | | | | | | 31, labeled tape expiration | | | | | | 32, labeled tape sequence | | | | | | 54, KSAM parms | | | | --------------------------------------------------------------------------------------------- | | | | userlabels | 33, user labels | | | | --------------------------------------------------------------------------------------------- | | | | blockfactor | 40, block factor | | | | --------------------------------------------------------------------------------------------- Table 4-9. FOPEN/HPFOPEN Parameter Equivalents (cont.) --------------------------------------------------------------------------------------------- | | | | FOPEN Parameter | HPFOPEN Itemnum,Item | | | | --------------------------------------------------------------------------------------------- | | | | numbuffers: | | | Bits (11:5) Numbuffers | | | Bits (4:7) Spooler copies | | | Bits (0:4) Output priority | | | | 44, numbuffers | | | | | | 34, spooler copies | | | | | | 27, output priority | | | | --------------------------------------------------------------------------------------------- | | | | filesize | 35, filesize | | | | --------------------------------------------------------------------------------------------- | | | | numextent | 47, numextent | | | | --------------------------------------------------------------------------------------------- | | | | initialloc | 36, initial allocation | | | | --------------------------------------------------------------------------------------------- | | | | filecode | 37, filecode | | | | --------------------------------------------------------------------------------------------- Operation Notes A file can be referenced by its formal file designator. When executed, a unique file number is returned to the process. This file number can be used, rather than the formal file designator, in other calls to this file.
NOTE If a file is opened with read access only (bits 12:4 = 0000) a subsequent call to FOPEN to write and set eof to 0 (bits 12:4 = 0001) succeeds but only after the system changes the call to write but not set eof to 0 (bits 12:4 =0010). This protects the reader, who opened the file first, from having the eof set to 0.
Condition Codes CCE (2) Request granted. The file is open. CCG (0) Not returned. CCL (1) Request denied. For example, another process already has exclusive or semi-exclusive access for this file, the privilege level of this file is not user (3), or an initial allocation of disk space cannot be made due to lack of disk space. If the file is not opened successfully, the file number value returned by FOPEN is 0. Call the FCHECK intrinsic for more details. Related Information Intrinsics HPFOPEN Commands None Manuals Accessing Files Programmer's Guide (32650-90017), Using KSAM XL (32650-90168), and KSAM/3000 Reference Manual (30000-90079)


MPE/iX 5.0 Documentation