MPE/iX Intrinsics Reference Manual (32650-90875)
Chapter 6 235
Command Definitions (FLUSHLOG-GETUSERMODE)
FOPEN
subsequent request for the read/write or update access
type option (
aoption
bits (12:4)) obtains read access.
However, other types of read access are allowed. If a
process already has write access to the file when this call
is issued, an error code is returned to the calling process.
If another HPFOPEN/FOPEN call that violates the read only
restriction is issued while read-share access is in effect,
that call fails and an error code is returned to the calling
process. Request read-share access only if the lock access
mode is allowed by the security provisions for the file.
For message files, this value specifies there can be
multiple writers, but only one reader.
11 Share access. After the file is opened, concurrent access to
this file by any process is permitted, in any access mode,
subject to other security provisions in effect.
For message files, this value specifies that there can be
multiple readers and multiple writers.
Default: 00
7:1 Inhibit buffering option
Enables/disables automatic buffering by the operating system.
The following bit settings are valid:
0 Allow normal buffering (BUF)
1 Inhibit buffering (NOBUF)
Default: 0
NOBUF access is for physical block transfer; not logical record transfer.
NOBUF access assumes responsibility for blocking and deblocking of records
in the file. To be consistent with files built using buffered I/O, records
should begin on half word boundaries. When the information content of
the record is less than the defined record length, pad the record with
blanks if the file is ASCII, or with zeros if the file is binary.
The record size and block size for files with NOBUF specified follow the same
rules as those files that are created using buffering. The default blocking
factor for a file created under NOBUF is 1.
If a file is opened NOBUF without multirecord mode specified in multirecord
option (
aoption
bit (11:1)), a maximum of only one block of data per read
or write can be transferred.
The end-of-file (EOF) marker, next record pointer, and record transfer
count are maintained in terms of logical records for all files. The number of
logical records affected by each transfer is determined by the size of the
transfer.
Transfers always begin on a block boundary. Those transfers that do not