Building on the success of its previous editions, this must-have guide continues its popular tutorial approach and brings you a straightforward introduction to developing programs for Linux and other UNIX-style operating systems. The author duo of experienced Linux programmers covers a wide range of topics to help you learn more about what Linux has to offer so you can maximize your programming time and your use of the Linux system.
You'll progress from the basics of compiling programs, linking to libraries, and dealing with terminal input and output to more advanced subjects such as writing applications for the GNOME and KDE environments, storing data using MySQL, and debugging. As each topic is covered, the authors introduce an appropriate programming theory and then illustrate it with practical examples, clear explanations, and a step-by-step approach with the intent that you will learn by doing. You'll quickly evolve from being a Linux beginner to confidently creating custom applications in Linux.
What you will learn from this book
• How to use the standard Linux C libraries and other facilities
• Ways to make the most of the standard Linux development tools
• Tips on basic system calls, file I/O, interprocess communication, and shell programming
• How to build graphical user interfaces using the GTK+ or Qt toolkits
• Using sockets to support TCP/IP networking to different machines
• How to write programs that will work on different distributions of Linux
Who this book is for
This book is for programmers and developers who want to increase their skill level using Linux. Experience in C and/or C+ + programming is helpful.
Author(s): Neil Matthew, Richard Stones
Series: Wrox Beginning guides
Edition: 4
Publisher: Wiley
Year: 2007
Language: English
Commentary: watermarked pages
Pages: 816
Acknowledgements
Foreword
Introduction
Chapter 1: Getting Started
An Introduction to UNIX, Linux, and GNU
Programming Linux
Getting Help
Summary
Chapter 2: Shell Programming
Why Program with a Shell?
A Bit of Philosophy
What Is a Shell?
Pipes and Redirection
The Shell as a Programming Language
Going Graphical — The dialog Utility
Putting It All Together
Summary
Chapter 3: Working with Files
Linux File Structure
System Calls and Device Drivers
Library Functions
Low-Level File Access
The Standard I/O Library
Formatted Input and Output
File and Directory Maintenance
Scanning Directories
Errors
The /proc File System
Advanced Topics: fcntl and mmap
Summary
Chapter 4: The Linux Environment
Program Arguments
Environment Variables
Time and Date
Temporary Files
User Information
Host Information
Logging
Resources and Limits
Summary
Chapter 5: Terminals
Reading from and Writing to the Terminal
Talking to the Terminal
The Terminal Driver and the General Terminal Interface
The termios Structure
Terminal Output
Detecting Keystrokes
Summary
Chapter 6: Managing Text-Based Screens with curses
Compiling with curses
Curses Terminology and Concepts
The Screen
The Keyboard
Windows
Subwindows
The Keypad
Using Color
Pads
The CD Collection Application
Summary
Chapter 7: Data Management
Managing Memory
File Locking
Databases
The CD Application
Summary
Chapter 8: MySQL
Installation
MySQL Administration
Accessing MySQL Data from C
The CD Database Application
Summary
Chapter 9: Development Tools
Problems of Multiple Source Files
The make Command and Makefiles
Source Code Control
Writing a Manual Page
Distributing Software
RPM Packages
Other Package Formats
Development Environments
Summary
Chapter 10: Debugging
Types of Errors
General Debugging Techniques
Debugging with gdb
More Debugging Tools
Assertions
Memory Debugging
Summary
Chapter 11: Processes and Signals
What Is a Process?
Process Structure
Starting New Processes
Signals
Summary
Chapter 12: POSIX Threads
What Is a Thread?
Advantages and Drawbacks of Threads
A First Threads Program
Simultaneous Execution
Synchronization
Thread Attributes
Canceling a Thread
Threads in Abundance
Summary
Chapter 13: Inter-Process Communication: Pipes
What Is a Pipe?
Process Pipes
Sending Output to popen
The Pipe Call
Parent and Child Processes
Named Pipes: FIFOs
The CD Database Application
Summary
Chapter 14: Semaphores, Shared Memory, and Message Queues
Semaphores
Shared Memory
Message Queues
The CD Database Application
IPC Status Commands
Summary
Chapter 15: Sockets
What Is a Socket?
Socket Connections
Network Information
Multiple Clients
Datagrams
Summary
Chapter 16: Programming GNOME Using GTK+
Introducing X
Introducing GTK+
Events, Signals, and Callbacks
Packing Box Widgets
GTK+ Widgets
GNOME Widgets
GNOME Menus
Dialogs
CD Database Application
Summary
Chapter 17: Programming KDE Using Qt
Introducing KDE and Qt
Installing Qt
Signals and Slots
Qt Widgets
Dialogs
Menus and Toolbars with KDE
CD Database Application Using KDE/Qt
Summary
Chapter 18: Standards for Linux
The C Programming Language
Interfaces and the Linux Standards Base
The Filesystem Hierarchy Standard
Further Reading about Standards
Summary
Index