Guardian Procedure Calls Reference Manual (G06.25+)
Guardian Procedure Calls (F)
Guardian Procedure Calls Reference Manual—522629-013
5-120
FILE_OPEN_ Procedure
Specifying a nowait-depth value greater than 0 causes all I/O operations to be 
performed in a nowait manner. Nowait I/O operations must be completed by a call 
to AWAITIO[X]. Nowait IO operations on different file numbers (even if for the 
same file) are independent and may arrive in any order at the destination and may 
be completed by AWAITIO[X] in any order.
•
Nowait opens
If you open a file in a nowait manner (
options.<1> = 1) and if FILE_OPEN_ 
returns no error (
error = 0), the open operation must be completed by a call to 
AWAITIO[X]. If there is an error, no system message is sent to the object being 
opened and you do not need to call AWAITIO[X] to complete the operation.
If there is no error, the 
filenum parameter returned by FILE_OPEN_ is valid. But 
you cannot initiate any I/O operation on the file until you complete the open by 
calling AWAITIO[X].
If you specify the 
tag parameter in the call to AWAITIO[X], a -30D is returned; the 
values returned in the buffer and count parameters to AWAITIO[X] are undefined. 
If an error returns from AWAITIO[X], it is your responsibility to close the file.
For the TMF transaction pseudofile, or for a waited file (
nowait-depth = 0), a 
request for a nowait open is rejected. 
The file system implementation of a nowait open might use waited calls in some 
cases. However, it is guaranteed that the open message is sent nowait to a 
process; the opener does not wait for the process being opened to service the 
open message.
•
Direct and buffered I/O transfers
A file opened by FILE_OPEN_ uses direct I/O transfers by default; SETMODE 72 
is used to force the system to use an intermediate buffer in the process file 
segment (PFS) for I/O transfers. This is unlike OPEN, which uses a PFS buffer for 
I/O transfers by default.
•
Sequential block buffering
Sequential block buffering is only supported for disk files. If sequential block 
buffering is used, the file should usually be opened with protected or exclusive 
access. Shared access can be used, but it is somewhat slower than the other 
access methods, and there might be concurrency problems. Refer to the 
discussion of “Sequential Block Buffering” in the 
Enscribe Programmer’s Guide.
•
Named processes
If you supply a process file name for a named process, it can represent any 
process with the same name. System messages are normally sent to the current 
primary process. The exception is when a named process supplies its own name 
to FILE_OPEN_. In that case the name refers to the backup process and system 
messages are sent there.










