9: Development Tools
Problems of Multiple Source Files
The make Command and Makefiles
- The Syntax of Makefiles
- Options and Parameters to make
- Comments in a Makefile
- Macros in a Makefile
- Multiple Targets
- Built-in Rules
- Suffix and Pattern Rules
- Managing Libraries with make
- Advanced Topic: Makefiles and Subdirectories
- GNU make and gcc
Source Code Control
- RCS
- SCCS
- Comparing RCS and SCCS
- CVS
- CVS Front Ends
- Subversion
Writing a Manual Page
Distributing Software
- The patch Program
- Other Distribution Utilities
RPM Packages
- Working with RPM Package Files
- Installing RPM Packages
- Building RPM Packages
Other Package Formats
Development Environments
- KDevelop
- Other Environments
8: MySQL
Installation
- MySQL Packages
- Post-Install Configuration
- Post-Installation Troubleshooting
MySQL Administration
- Commands
- Creating Users and Giving Them Permissions
- Passwords
- Creating a Database
- Data Types
- Creating a Table
- Graphical Tools
Accessing MySQL Data from C
- Connection Routines
- Error Handling
- Executing SQL Statements
- Miscellaneous Functions
The CD Database Application
- Creating the Tables
- Adding Some Data
- Accessing the Application Data from C
7: Data Management
Managing Memory
- Simple Memory Allocation
- Allocating Lots of Memory
- Abusing Memory
- The Null Pointer
- Freeing Memory
- Other Memory Allocation Functions
File Locking
- Creating Lock Files
- Locking Regions
- Use of read and write with Locking
- Competing Locks
- Other Lock Commands
- Deadlocks
Databases
- The dbm Database
- The dbm Routines
- dbm Access Functions
- Additional dbm Functions
The CD Application
- Updating the Design
- The CD Database Application Using dbm
6: Managing Text-Based Screens with curses
Compiling with curses
Curses Terminology and Concepts
The Screen
- Output to the Screen
- Reading from the Screen
- Clearing the Screen
- Moving the Cursor
- Character Attributes
The Keyboard
- Keyboard Modes
- Keyboard Input
Windows
- The WINDOW Structure
- Generalized Functions
- Moving and Updating a Window
- Optimizing Screen Refreshes
Subwindows
The Keypad
Using Color
Pads
The CD Collection Application
- Starting a New CD Collection Application
- Looking at main
- Building the Menu
- Database File Manipulation
- Querying the CD Database
5: Terminals
Reading from and Writing to the Terminal
Talking to the Terminal
The Terminal Driver and the General Terminal Interface
The termios Structure
- Input Modes
- Output Modes
- Control Modes
- Local Modes
Special Control Characters
- Terminal Speed
- Additional Functions
Terminal Output
- Terminal Type
- Identify Your Terminal Type
- Using terminfo Capabilities
Detecting Keystrokes
- Virtual Consoles
- Pseudo-Terminals
4: The Linux Environment
Program Arguments
Environment Variables
- Use of Environment Variables
- The environ Variable
Time and Date
Temporary Files
User Information
Host Information
Logging
Resources and Limits
3: Working with Files
Linux File Structure
- Directories
- Files and Devices
System Calls and Device Drivers
Library Functions
Low-Level File Access
- write
- read
- open
- Initial Permissions
- Other System Calls for Managing Files
- The Standard I/O Library
- fopen
- fread
- fwrite
- fclose
- fflush
- fseek
- fgetc, getc, and getchar
- fputc, putc, and putchar
- fgets and gets
Formatted Input and Output
- printf, fprintf, and sprintf
- scanf, fscanf, and sscanf
- Other Stream Functions
- Stream Errors
- Streams and File Descriptors
File and Directory Maintenance
- chmod
- chown
- unlink, link, and symlink
- mkdir and rmdir
- chdir and getcwd
Scanning Directories
- opendir
- readdir
- telldir
- seekdir
- closedir
Errors The /proc File System
Advanced Topics: fcntl and mmap