Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
About This eBook Title Page Copyright Page Praise for Advanced Programming in the UNIX® Environment, Second Edition Praise for the First Edition Dedication Page Contents Foreword to the Second Edition Preface
Introduction Changes from the Second Edition Acknowledgments
Preface to the Second Edition
Introduction Changes from the First Edition Acknowledgments
Preface to the First Edition
Introduction Unix Standards Organization of the Book Examples in the Text Systems Used to Test the Examples Acknowledgments
1. UNIX System Overview
1.1. Introduction 1.2. UNIX Architecture 1.3. Logging In 1.4. Files and Directories 1.5. Input and Output 1.6. Programs and Processes 1.7. Error Handling 1.8. User Identification 1.9. Signals 1.10. Time Values 1.11. System Calls and Library Functions 1.12. Summary Exercises
2. UNIX Standardization and Implementations
2.1. Introduction 2.2. UNIX Standardization 2.3. UNIX System Implementations 2.4. Relationship of Standards and Implementations 2.5. Limits 2.6. Options 2.7. Feature Test Macros 2.8. Primitive System Data Types 2.9. Differences Between Standards 2.10. Summary Exercises
3. File I/O
3.1. Introduction 3.2. File Descriptors 3.3. open and openat Functions 3.4. creat Function 3.5. close Function 3.6. lseek Function 3.7. read Function 3.8. write Function 3.9. I/O Efficiency 3.10. File Sharing 3.11. Atomic Operations 3.12. dup and dup2 Functions 3.13. sync, fsync, and fdatasync Functions 3.14. fcntl Function 3.15. ioctl Function 3.16. /dev/fd 3.17. Summary Exercises
4. Files and Directories
4.1. Introduction 4.2. stat, fstat, fstatat, and lstat Functions 4.3. File Types 4.4. Set-User-ID and Set-Group-ID 4.5. File Access Permissions 4.6. Ownership of New Files and Directories 4.7. access and faccessat Functions 4.8. umask Function 4.9. chmod, fchmod, and fchmodat Functions 4.10. Sticky Bit 4.11. chown, fchown, fchownat, and lchown Functions 4.12. File Size 4.13. File Truncation 4.14. File Systems 4.15. link, linkat, unlink, unlinkat, and remove Functions 4.16. rename and renameat Functions 4.17. Symbolic Links 4.18. Creating and Reading Symbolic Links 4.19. File Times 4.20. futimens, utimensat, and utimes Functions 4.21. mkdir, mkdirat, and rmdir Functions 4.22. Reading Directories 4.23. chdir, fchdir, and getcwd Functions 4.24. Device Special Files 4.25. Summary of File Access Permission Bits 4.26. Summary Exercises
5. Standard I/O Library
5.1. Introduction 5.2. Streams and FILE Objects 5.3. Standard Input, Standard Output, and Standard Error 5.4. Buffering 5.5. Opening a Stream 5.6. Reading and Writing a Stream 5.7. Line-at-a-Time I/O 5.8. Standard I/O Efficiency 5.9. Binary I/O 5.10. Positioning a Stream 5.11. Formatted I/O 5.12. Implementation Details 5.13. Temporary Files 5.14. Memory Streams 5.15. Alternatives to Standard I/O 5.16. Summary Exercises
6. System Data Files and Information
6.1. Introduction 6.2. Password File 6.3. Shadow Passwords 6.4. Group File 6.5. Supplementary Group IDs 6.6. Implementation Differences 6.7. Other Data Files 6.8. Login Accounting 6.9. System Identification 6.10. Time and Date Routines 6.11. Summary Exercises
7. Process Environment
7.1. Introduction 7.2. main Function 7.3. Process Termination 7.4. Command-Line Arguments 7.5. Environment List 7.6. Memory Layout of a C Program 7.7. Shared Libraries 7.8. Memory Allocation 7.9. Environment Variables 7.10. setjmp and longjmp Functions 7.11. getrlimit and setrlimit Functions 7.12. Summary Exercises
8. Process Control
8.1. Introduction 8.2. Process Identifiers 8.3. fork Function 8.4. vfork Function 8.5. exit Functions 8.6. wait and waitpid Functions 8.7. waitid Function 8.8. wait3 and wait4 Functions 8.9. Race Conditions 8.10. exec Functions 8.11. Changing User IDs and Group IDs 8.12. Interpreter Files 8.13. system Function 8.14. Process Accounting 8.15. User Identification 8.16. Process Scheduling 8.17. Process Times 8.18. Summary Exercises
9. Process Relationships
9.1. Introduction 9.2. Terminal Logins 9.3. Network Logins 9.4. Process Groups 9.5. Sessions 9.6. Controlling Terminal 9.7. tcgetpgrp, tcsetpgrp, and tcgetsid Functions 9.8. Job Control 9.9. Shell Execution of Programs 9.10. Orphaned Process Groups 9.11. FreeBSD Implementation 9.12. Summary Exercises
10. Signals
10.1. Introduction 10.2. Signal Concepts 10.3. signal Function 10.4. Unreliable Signals 10.5. Interrupted System Calls 10.6. Reentrant Functions 10.7. SIGCLD Semantics 10.8. Reliable-Signal Terminology and Semantics 10.9. kill and raise Functions 10.10. alarm and pause Functions 10.11. Signal Sets 10.12. sigprocmask Function 10.13. sigpending Function 10.14. sigaction Function 10.15. sigsetjmp and siglongjmp Functions 10.16. sigsuspend Function 10.17. abort Function 10.18. system Function 10.19. sleep, nanosleep, and clock_nanosleep Functions 10.20. sigqueue Function 10.21. Job-Control Signals 10.22. Signal Names and Numbers 10.23. Summary Exercises
11. Threads
11.1. Introduction 11.2. Thread Concepts 11.3. Thread Identification 11.4. Thread Creation 11.5. Thread Termination 11.6. Thread Synchronization 11.7. Summary Exercises
12. Thread Control
12.1. Introduction 12.2. Thread Limits 12.3. Thread Attributes 12.4. Synchronization Attributes 12.5. Reentrancy 12.6. Thread-Specific Data 12.7. Cancel Options 12.8. Threads and Signals 12.9. Threads and fork 12.10. Threads and I/O 12.11. Summary Exercises
13. Daemon Processes
13.1. Introduction 13.2. Daemon Characteristics 13.3. Coding Rules 13.4. Error Logging 13.5. Single-Instance Daemons 13.6. Daemon Conventions 13.7. Client–Server Model 13.8. Summary Exercises
14. Advanced I/O
14.1. Introduction 14.2. Nonblocking I/O 14.3. Record Locking 14.4. I/O Multiplexing 14.5. Asynchronous I/O 14.6. readv and writev Functions 14.7. readn and writen Functions 14.8. Memory-Mapped I/O 14.9. Summary Exercises
15. Interprocess Communication
15.1. Introduction 15.2. Pipes 15.3. popen and pclose Functions 15.4. Coprocesses 15.5. FIFOs 15.6. XSI IPC 15.7. Message Queues 15.8. Semaphores 15.9. Shared Memory 15.10. POSIX Semaphores 15.11. Client–Server Properties 15.12. Summary Exercises
16. Network IPC: Sockets
16.1. Introduction 16.2. Socket Descriptors 16.3. Addressing 16.4. Connection Establishment 16.5. Data Transfer 16.6. Socket Options 16.7. Out-of-Band Data 16.8. Nonblocking and Asynchronous I/O 16.9. Summary Exercises
17. Advanced IPC
17.1. Introduction 17.2. UNIX Domain Sockets 17.3. Unique Connections 17.4. Passing File Descriptors 17.5. An Open Server, Version 1 17.6. An Open Server, Version 2 17.7. Summary Exercises
18. Terminal I/O
18.1. Introduction 18.2. Overview 18.3. Special Input Characters 18.4. Getting and Setting Terminal Attributes 18.5. Terminal Option Flags 18.6. stty Command 18.7. Baud Rate Functions 18.8. Line Control Functions 18.9. Terminal Identification 18.10. Canonical Mode 18.11. Noncanonical Mode 18.12. Terminal Window Size 18.13. termcap, terminfo, and curses 18.14. Summary Exercises
19. Pseudo Terminals
19.1. Introduction 19.2. Overview 19.3. Opening Pseudo-Terminal Devices 19.4. pty_fork Function 19.5. pty Program 19.6. Using the pty Program 19.7. Advanced Features 19.8. Summary Exercises
20. A Database Library
20.1. Introduction 20.2. History 20.3. The Library 20.4. Implementation Overview 20.5. Centralized or Decentralized? 20.6. Concurrency 20.7. Building the Library 20.8. Source Code 20.9. Performance 20.10. Summary Exercises
21. Communicating with a Network Printer
21.1. Introduction 21.2. The Internet Printing Protocol 21.3. The Hypertext Transfer Protocol 21.4. Printer Spooling 21.5. Source Code 21.6. Summary Exercises
Appendix A. Function Prototypes Appendix B. Miscellaneous Source Code
B.1. Our Header File B.2. Standard Error Routines
Appendix C. Solutions to Selected Exercises
Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21
Bibliography Index
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion