Table of contents for Linux application development / Michael K. Johnson, Erik W. Troan.

Bibliographic record and links to related information available from the Library of Congress catalog.

Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.


Counter
Contents
Preface vii 
Contents xvii 
List of Tables xxix Code 
Examples xxxi
Part 1.	Getting Started 
Chapter 1. History of Linux Development 
1.1 A Short History of Free Unix Software
1.2 Development of Linux 
1.3 Notional Lineage of Unix Systems 
1.4 Linux Lineage 
Chapter 2. Licenses and Copyright 
2.1 Copyright 
2.2 Licensing 
2.3 Free Software Licenses 
Chapter 3. Online System Documentation 
3.1 The man Pages
3.2 The Info Pages 
3.3 Other Documentation
Part 2.	Development Tools and Environment 
Chapter 4. Development Tools 
4.1 Editors
4.2 Make
4.3 The GNU Debugger 
4.4 Tracing Program Actions 
Chapter 5. gcc Options and Extensions 
5.1 gcc Options 
5.2 Header Files 
Chapter 6. The GNU C Library 
6.1 Feature Selection 
6.2 POSIX Interfaces 
6.3 Compatibility 
Chapter 7. Memory Debugging Tools 
7.1 Buggy Code
7.2 Memory Checking Tools Included in glibc
7.3 Finding Memory Leaks with mpr 
7.4 Investigating Memory Errors with Valgrind 
7.5 Electric Fence 
Chapter 8. Creating and Using Libraries
8.1 Static Libraries 
8.2 Shared Libraries 
8.3 Designing Shared Libraries 
8.4 Building Shared Libraries 
8.5 Installing Shared Libraries
8.6 Using Shared Libraries 
Chapter 9. Linux System Environment 
9.1 The Process Environment 
9.2 Understanding System Calls 
9.3 Finding Header and Library Files 
Part 3.	System Programming 
Chapter 10. The Proess Model 
10.1 Defining a Process 
10.2 Process Attributes 
10.3 Process Information 
10.4 Process Primitives 
10.5 Simple Children 
10.6 Sessions and Process Groups 
10.7 Introduction to ladsh
10.8 Creating Clones 
Chapter 11. Simple File Handling 
11.1 The File Mode 
11.2 Basic File Operations 
11.3 Querying and Changing Inode Information
11.4 Manipulating Directory Entries 
11.5 Manipulating File Descriptors
11.6 Creating Unnamed Pipes 
11.7 Adding Redirection to ladsh 
Chapter 12. Signal Processing 
12.1 Signal Concepts 
12.2 The Linux (and POSIX) Signal API 
12.3 Available Signals 
12.4 Writing Signal Handlers 
12.5 Reopening Log Files 
12.6 Real Time Signals 
12.7 Learning About a Signal 
Chapter 13 Advanced File Handling 
13.1 Input and Output Multiplexing 
13.2 Memory Mapping 
13.3 File Locking 
13.4 Alternatives to read ( ) and write ( ) 
Chapter 14. Directory Operations 
14.1 The Current Working Directory 
14.2 Changing the Root Directory 
14.3 Creating and Removing Directories 
14.4 Reading a Directory's Contents 
14.5 File Name Globbing 
14.6 Adding Directories and Globbing to ladsh 
14.7 Walking Filesystem Trees 
14.8 Directory Change Notification 
Chapter 15. Job Control 
15.1 Job Control Basics 
15.2 Job Control in ladsh 
Chapter 16. Terminals and Pseudo Terminals 
16.1 tty Operations 
16.2 termios Overview 
16.3 termios Examples 
16.4 termios Debugging 
16.5 termios Reference 
16.6 Pseudo ttys 
Chapter 17 Networking with Sockets 
17.1 Protocol Support
17.2 Utility Functions 
17.3 Basic Socket Operations 
17.4 Unix Domain Sockets 
17.5 Networking Machines with TCP/IP 
17.6 Using UDP Datagrams 
17.7 Socket Errors 
17.8 Legacy Networking Functions 
Chapter 18 Time 
18.1 Telling Time and Dates 
18.2 Using Timers 
Chapter 19. Random Numbers
19.1 Pseudo-Random Numbers 
19.2 Cryptography and Random Numbers 
Chapter 20. Programming Virtual Consoles 
20.1 Getting Started 
20.2 Beeping 
20.3 Determining Whether the Terminal Is a VC 
20.4 Finding the Current VC
20.5 Managing VC Switching
20.6 Example: The op e n Command 
Chapter 21. The Linux Console 
21.1 Capability Databases 
21.2 Glyphs, Characters, and Maps 
21.3 Linux Console Capabilities 
21.4 Direct Screen Writing 
Chapter 22. Writing Secure Programs 
22.1 When Security Matters 
22.2 Minimizing the Opportunity for Attack 
22.3 Common Security Holes 
22.4 Running as a Daemon 
Part 4	Development Libraries 
Chapter 23. String Matching 
	23.1 Globbing Arbitrary Strings 
	23.2 Regular Expressions 
Chapter 24. Terminal Handling with S-Lang 
24.1 Input Handling 
24.2 Output Handling 
Chapter 25. A Hashed Database Library 
25.1 Overview 
25.2 Basic Operations 
25.3 Reading Records 
25.4 Modifying the Database 
25.5 Example 
Chapter 26. Parsing Command-Line Options
26.1 The Option Table 
26.2 Using the Option Table 
26.3 Using Callbacks 
26.4 Error Handling 
26.5 Option Aliasing 
26.6 Parsing Argument Strings 
26.7 Handling Extra Arguments 
26.8 Sample Application 
Chapter 27. Dynamic Loading at Run Time 
27.1 The dl Interface
Chapter 28. User Identifiation and Authentication 
28.1 ID-to-Name Translation 
28.2 Pluggable Authentication Modules 
Appendcies 
Appendix A. Header Files 
Appendix B. ladsh Source Code 
Glossary 
Bibliography
Index

Library of Congress Subject Headings for this publication:

Linux.
Application software -- Development.