| |
| ....Basic File I/O | 52 |
| ....Advanced File I/O | 53 |
| ....File System Control | 54 |
| ..File and Record Locking | 55 |
| ....Supported File Systems | 55 |
| ....Choosing A Lock Type | 55 |
| ....Terminology | 56 |
| ....Setting a File Lock | 56 |
| ....Opening a File for Record Locking | 58 |
| ....Setting and Removing Record Locks | 58 |
| ....Getting Lock Information | 59 |
| ....Forking Locks | 60 |
| ....Deadlock Handling | 61 |
| ....Selecting Advisory or Mandatory Locking | 61 |
| ....Cautions about Mandatory Locking | 62 |
| ..Terminal I/O | 63 |
5. System V IPC | 65 |
| ....Permissions | 66 |
| ....IPC Functions, Key Arguments, and Creation Flags | 67 |
| ..Messages | 68 |
| ....Structure of a Message Queue | 69 |
| ....Initializing a Message Queue with msgget() | 71 |
| ....Controlling Message Queues with msgctl() | 72 |
| ....Sending and Receiving Messages | 73 |
| |
| ..Semaphores | 75 |
| ....Structure of a Semaphore Set | 77 |
| ....Initializing a Semaphore Set with semget() | 78 |
| ....Controlling Semaphores with semctl() | 80 |
| ....Performing Semaphore Operations with semop() | 82 |
| ..System V Shared Memory | 83 |
| ....Structure of a System V Shared Memory Segment | 84 |
| ....Using shmget() to Access a Shared Memory Segment | 85 |
| ....Controlling a Shared Memory Segment with shmctl() | 87 |
| ....Attaching and Detaching a Shared Memory Segment with |
| .......shmat() and shmdt() | 88 |
6. Memory Management | 91 |
| ..Overview of the Virtual Memory System | 91 |
| ....Virtual Memory, Address Spaces, and Mapping | 91 |
| ....Networking, Heterogeneity, and Coherence | 93 |
| ..Memory Management Interfaces | 94 |
| ....Creating and Using Mappings | 94 |
| ....Removing Mappings | 100 |
| ....Cache Control | 100 |
| ....Other Mapping Functions | 103 |
| ..Address Space Layout | 103 |
7. Realtime Programming and Administration | 107 |
| ..Basic Rules of Realtime Applications | 107 |
| ....Degrading Response Time | 108 |