Guardian Procedure Calls Reference Manual

The specific limit for a file is dependent on the file's device type:
Cannot exceed 65,279 opens per diskDisk Files
Defined by process (see discussion of controlling openers in the Guardian Programmer's Guide)Process
Unlimited opens$0
128 concurrent opens permitted$0.#ZSPI
10 times the number of subdevices (up to a maximum of 83 subdevices)$OSP
One open per process permitted$RECEIVE
Varies by subsystemOther
Nowait opens—errors
If a process file is opened in a nowait manner (flags.<8> = 1), that file is opened as nowait
and checkopened in a nowait manner. Errors detected in parameter specification and system
data space allocation are returned by the call to OPEN, and the operation is considered
unsuccessful. If there is an error, no message to the process being opened is sent, and no call
to AWAITIO is needed to complete the open.
If there are no parameter or data space allocation errors, the filenum parameter is valid
when OPEN returns. However, no I/O operation on the file can be initiated until the open is
completed, and other errors are reported by a call to AWAITIO.
If the tag parameter is specified in the call to AWAITIO, a -30D returns. The values returned
in the buffer and count parameters to AWAITIO are undefined. If an error returns from
AWAITIO, it is the user's responsibility to close the file.
For a nonprocess or waited (nowait depth = 0) file, flags.<8> is internally reset to 0 and
ignored. A call to FILEINFO after the call to OPEN can return the value of the internal flags;
if bit <8> = 1, then a call to AWAITIO must be performed to complete the open.
For considerations when using nowait I/O, see the Enscribe Programmer's Guide. For a
general discussion of nowait I/O, see the Guardian Programmer's Guide.
Direct and buffered I/O transfers
A file opened by OPEN uses an intermediate buffer in the process file segment (PFS) for I/O
(read) transfers by default; SETMODE function 72 is used to force the system to use direct I/O
transfers. This is unlike FILE_OPEN_, which uses direct I/O transfers by default.
The system buffers are used for files opened by OPEN. If you want to use user buffers instead
of system buffers, set SETMODE function 72,2. Note that calling the USERIOBUFFER_ALLOW_
procedure before the OPEN procedure does not override the implicit SETMODE function 72,1
for files opened by OPEN.
Partitioned files
A separate pair of FCBs exist for each partition of a partitioned file. There is one ACB per
accessor (as for single-volume files), but this ACB requires more main memory since it contains
the information necessary to access all of the partitions, including the location, alternate keys,
and partial-key value for each partition.
902 Guardian Procedure Calls (O)