Important: The information in this document is obsolete and should not be used for new development.
Chapter 2 - File Manager
This chapter describes how your application can use the File Manager to store and access data in files or to manipulate files, directories, and volumes. It also provides a complete description of all File Manager routines, data types, and constants.You need to read the information in this chapter if you wish to use File Manager routines other than those described in the chapter "Introduction to File Management" earlier in this book. That chapter shows how to use the File Manager, the Standard File Package, and other system software components to handle the typical File menu commands and perform other common file-manipulation operations. This chapter addresses a number of other important file-related issues, including
This chapter also addresses some advanced topics of interest primarily to designers
- using the low-level File Manager routines
- locking and unlocking byte ranges in shared files
- searching a volume for files or directories satisfying certain criteria
- obtaining information about files, directories, and volumes
of very specialized applications or file-system utility programs. These advanced
topics include
To use this chapter, you should already be familiar with the information presented in the chapter "Introduction to File Management" earlier in this book.
- how the File Manager organizes file and directory data on disk
- how the File Manager organizes information in memory
This chapter begins with a general introduction to the File Manager and the services it provides. Then it describes
- ways of identifying files, directories, and volumes
- file access permissions
- directory access privileges
- running in a shared environment
Chapter Contents
- About the File Manager
- File Manipulation
- Directory Manipulation
- Volume Manipulation
- Volume Searching
- Shared Environments
- Shared File Access Permissions
- Directory Access Privileges
- Remote Volume Mounting
- Privilege Information in Foreign File Systems
- File ID Reference Routines
- Identifying Files, Directories, and Volumes
- File System Specifications
- File IDs
- Directory IDs
- Volume Reference Numbers
- Working Directory Reference Numbers
- Names and Pathnames
- HFS Specifications
- Search Paths
- Using the File Manager
- Determining the Features of the File Manager
- Creating File System Specification Records
- Manipulating the Default Volume and Directory
- Deleting Files and File Forks
- Searching a Volume
- Constructing Full Pathnames
- Determining the Amount of Free Space on a Volume
- Sharing Volumes and Directories
- Locking and Unlocking File Ranges
- Data Organization on Volumes
- Disk and Volume Organization
- Boot Blocks
- Master Directory Blocks
- Volume Bitmaps
- B*-Trees
- Nodes
- Node Records
- Header Nodes
- Map Nodes
- Index Nodes
- Leaf Nodes
- Catalog Files
- Catalog File Keys
- Catalog File Data Records
- Extents Overflow Files
- Data Organization in Memory
- The File I/O Queue
- Volume Control Blocks
- File Control Blocks
- B*-Tree Control Blocks
- The Drive Queue
- File Manager Reference
- Data Structures
- File System Specification Record
- Basic File Manager Parameter Block
- HFS Parameter Block
- Catalog Information Parameter Blocks
- Catalog Position Records
- Catalog Move Parameter Blocks
- Working Directory Parameter Blocks
- File Control Block Parameter Blocks
- Volume Attributes Buffer
- Volume Mounting Information Records
- High-Level File Access Routines
- Reading, Writing, and Closing Files
- Manipulating the File Mark
- Manipulating the End-of-File
- Allocating File Blocks
- Low-Level File Access Routines
- Reading, Writing, and Closing Files
- Manipulating the File Mark
- Manipulating the End-of-File
- Allocating File Blocks
- Updating Files
- High-Level Volume Access Routines
- Unmounting Volumes
- Updating Volumes
- Manipulating the Default Volume
- Obtaining Volume Information
- Low-Level Volume Access Routines
- Mounting and Unmounting Volumes
- Updating Volumes
- Obtaining Volume Information
- Manipulating the Default Volume
- File System Specification Routines
- Opening Files
- Creating and Deleting Files and Directories
- Accessing Information About Files and Directories
- Moving Files or Directories
- Exchanging the Data in Two Files
- Creating File System Specifications
- High-Level HFS Routines
- Opening Files
- Creating and Deleting Files and Directories
- Accessing Information About Files and Directories
- Moving Files or Directories
- Maintaining Working Directories
- Low-Level HFS Routines
- Opening Files
- Creating and Deleting Files and Directories
- Accessing Information About Files and Directories
- Moving Files or Directories
- Maintaining Working Directories
- Searching a Catalog
- Exchanging the Data in Two Files
- Shared Environment Routines
- Opening Files While Denying Access
- Locking and Unlocking File Ranges
- Manipulating Share Points
- Controlling Directory Access
- Mounting Volumes
- Controlling Login Access
- Copying and Moving Files
- File ID Routines
- Resolving File ID References
- Creating and Deleting File ID References
- Foreign File System Routines
- Utility Routines
- Obtaining Queue Headers
- Adding a Drive
- Obtaining File Control Block Information
- Application-Defined Routines
- Completion Routines
- Summary of the File Manager
- Pascal Summary
- Constants
- Data Types
- Internal Data Types
- High-Level File Access Routines
- Low-Level File Access Routines
- High-Level Volume Access Routines
- Low-Level Volume Access Routines
- File System Specification Routines
- High-Level HFS Routines
- Low-Level HFS Routines
- Shared Environment Routines
- File ID Routines
- Foreign File System Routines
- Utility Routines
- Application-Defined Routine
- C Summary
- Constants
- Data Types
- Internal Data Types
- High-Level File Access Routines
- Low-Level File Access Routines
- High-Level Volume Access Routines
- Low-Level Volume Access Routines
- File System Specification Routines
- High-Level HFS Routines
- Low-Level HFS Routines
- Shared Environment Routines
- File ID Routines
- Utility Routines
- Application-Defined Routine
- Assembly-Language Summary
- Constants
- Data Structures
- Trap Macros
- Global Variables
- Result Codes