Guardian Programmer's Guide

Table Of Contents
Contents
Guardian Programmer’s Guide421922-014
iii
3. Coordinating Concurrent File Access (continued)
3. Coordinating Concurrent File Access (continued)
Setting the Access Mode 3-1
Setting the Exclusion Mode 3-3
Locking a File 3-6
Avoiding Deadlocks 3-7
Avoiding Multiple-Process Deadlocks 3-7
Avoiding Single-Process Deadlocks 3-10
4. Using Nowait Input/Output
Overview of Nowait Input/Output 4-1
Applying a Nowait Operation on a Single File 4-3
Applying Multiple Nowait Operations on a Single File 4-5
Completing I/Os in the Order Initiated 4-6
Completing I/Os in Any Order 4-7
Using File-System Buffering 4-8
Applying Nowait Operations to Multiple Files 4-10
Nowait I/O: An Example 4-12
Using FILE_COMPLETE_ and its Companion Procedures 4-24
Using the FILE_COMPLETE_SET_ Procedure 4-24
Using the FILE_COMPLETE_GETINFO_ Procedure 4-27
Using the FILE_COMPLETE_ Procedure 4-27
Nowait-Depth 4-30
5. Communicating With Disk Files
Types of Disk Files 5-1
Unstructured Files 5-1
Structured Files
5-2
Alternate-Key Files
5-7
Queue Files 5-8
Using Unstructured Files 5-9
Creating Unstructured Files 5-9
Opening Unstructured Files 5-11
Positioning, Reading, and Writing With Unstructured Files 5-11
Locking With Unstructured Files 5-11
Renaming Unstructured Files 5-12
Avoiding Unnecessary Cache Flushes to Unstructured Files 5-13
Closing Unstructured Files 5-13
Purging Unstructured Files 5-14
Altering Unstructured-File Attributes 5-15