5.1. Considering Directory Contents5.1.1. Definitions5.1.2. Directory Contents5.1.3. Hard Links5.1.3.1. The GNU link Program5.1.3.2. Dot and Dot-Dot5.1.4. File Renaming5.1.5. File Removal5.1.5.1. Removing Open Files5.1.5.2. Using ISO C: remove()5.1.6. Symbolic Links5.2. Creating and Removing Directories5.3. Reading Directories5.3.1. Basic Directory Reading5.3.1.1. Portability Considerations5.3.1.2. Linux and BSD Directory Entries5.3.2. BSD Directory Positioning Functions5.4. Obtaining Information about Files5.4.1. Linux File Types5.4.2. Retrieving File Information5.4.3. Linux Only: Specifying Higher-Precision File Times5.4.4. Determining File Type5.4.4.1. Device Information5.4.4.2. The V7 cat Revisited5.4.5. Working with Symbolic Links5.5. Changing Ownership, Permission, and Modification Times5.5.1. Changing File Ownership: chown(), fchown(), and lchown()5.5.2. Changing Permissions: chmod() and fchmod()5.5.3. Changing Timestamps: utime()5.5.3.1. Faking utime(file, NULL)5.5.4. Using fchown() and fchmod() for Security5.6. SummaryExercises