Beginning Linux programming 4th Edition by Neil Matthew, Richard Stones – Ebook PDF Instant Download/Delivery: 1118058615, 9781118058619
Full download Beginning Linux programming 4th Edition after payment
Product details:
ISBN 10: 1118058615
ISBN 13: 9781118058619
Author: Neil Matthew, Richard Stones
Beginning Linux Programming, Fourth Edition continues its unique approach to teaching UNIX programming in a simple and structured way on the Linux platform. Through the use of detailed and realistic examples, students learn by doing, and are able to move from being a Linux beginner to creating custom applications in Linux. The book introduces fundamental concepts beginning with the basics of writing Unix programs in C, and including material on basic system calls, file I/O, interprocess communication (for getting programs to work together), and shell programming. Parallel to this, the book introduces the toolkits and libraries for working with user interfaces, from simpler terminal mode applications to X and GTK+ for graphical user interfaces. Advanced topics are covered in detail such as processes, pipes, semaphores, socket programming, using MySQL, writing applications for the GNOME or the KDE desktop, writing device drivers, POSIX Threads, and kernel programming for the latest Linux Kernel.
Beginning Linux programming 4th Table of contents:
Chapter 1: Getting Started
An Introduction to UNIX, Linux, and GNU
What Is UNIX?
What Is Linux?
The GNU Project and the Free Software Foundation
Linux Distributions
Programming Linux
Linux Programs
Text Editors
The C Compiler
Development System Roadmap
Getting Help
Summary
Chapter 2: Shell Programming
Why Program with a Shell?
A Bit of Philosophy
What Is a Shell?
Pipes and Redirection
Redirecting Output
Redirecting Input
Pipes
The Shell as a Programming Language
Interactive Programs
Creating a Script
Making a Script Executable
Shell Syntax
Variables
Conditions
Control Structures
Functions
Commands
Command Execution
Here Documents
Debugging Scripts
Going Graphical — The dialog Utility
Putting It All Together
Requirements
Design
Summary
Chapter 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
strerror
perror
The /proc File System
Advanced Topics: fcntl and mmap
fcntl
mmap
Summary
Chapter 4: The Linux Environment
Program Arguments
getopt
getopt_long
Environment Variables
Use of Environment Variables
The environ Variable
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
Overview
Hardware Model
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
Summary
Chapter 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
Redefining Colors
Pads
The CD Collection Application
Starting a New CD Collection Application
Looking at main
Building the Menu
Database File Manipulation
Querying the CD Database
Summary
Chapter 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
Summary
Chapter 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
Summary
Chapter 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
Summary
Chapter 10: Debugging
Types of Errors
General Debugging Techniques
A Program with Bugs
Code Inspection
Instrumentation
Controlled Execution
Debugging with gdb
Starting gdb
Running a Program
Stack Trace
Examining Variables
Listing the Program
Setting Breakpoints
Patching with the Debugger
Learning More about gdb
More Debugging Tools
Lint: Removing the Fluff from Your Programs
Function Call Tools
Execution Profiling with prof/gprof
Assertions
Memory Debugging
ElectricFence
valgrind
Summary
Chapter 11: Processes and Signals
What Is a Process?
Process Structure
The Process Table
Viewing Processes
System Processes
Process Scheduling
Starting New Processes
Waiting for a Process
Zombie Processes
Input and Output Redirection
Threads
Signals
Sending Signals
Signal Sets
Summary
Chapter 12: POSIX Threads
What Is a Thread?
Advantages and Drawbacks of Threads
A First Threads Program
Simultaneous Execution
Synchronization
Synchronization with Semaphores
Synchronization with Mutexes
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
Passing More Data
How popen Is Implemented
The Pipe Call
Parent and Child Processes
Reading Closed Pipes
Pipes Used as Standard Input and Output
Named Pipes: FIFOs
Accessing a FIFO
Advanced Topic: Client/Server Using FIFOs
The CD Database Application
Aims
Implementation
Client Interface Functions
The Server Interface, server.c
The Pipe
Application Summary
Summary
Chapter 14: Semaphores, Shared Memory, and Message Queues
Semaphores
Semaphore Definition
A Theoretical Example
Linux Semaphore Facilities
Using Semaphores
Shared Memory
shmget
shmat
shmdt
shmctl
Message Queues
msgget
msgsnd
msgrcv
msgctl
The CD Database Application
Revising the Server Functions
Revising the Client Functions
IPC Status Commands
Displaying Semaphore Status
Displaying Shared Memory Status
Displaying Message Queue Status
Summary
Chapter 15: Sockets
What Is a Socket?
Socket Connections
Socket Attributes
Creating a Socket
Socket Addresses
Naming a Socket
Creating a Socket Queue
Accepting Connections
Requesting Connections
Closing a Socket
Socket Communications
Host and Network Byte Ordering
Network Information
The Internet Daemon (xinetd/inetd)
Socket Options
Multiple Clients
select
Multiple Clients
Datagrams
Summary
Chapter 16: Programming GNOME Using GTK+
Introducing X
X Server
X Client
X Protocol
Xlib
Toolkits
Window Managers
Other Ways to Create a GUI — Platform-Independent Windowing APIs
Introducing GTK+
GLib Type System
GTK+ Object System
Introducing GNOME
Installing the GNOME/GTK+ Development Libraries
Events, Signals, and Callbacks
Packing Box Widgets
GTK+ Widgets
GtkWindow
GtkEntry
GtkSpinButton
GtkButton
GtkTreeView
GNOME Widgets
GNOME Menus
Dialogs
GtkDialog
Modal Dialog Box
Nonmodal Dialogs
GtkMessageDialog
CD Database Application
Summary
Chapter 17: Programming KDE Using Qt
Introducing KDE and Qt
Installing Qt
Signals and Slots
Qt Widgets
QLineEdit
Qt Buttons
QComboBox
QListView
Dialogs
QDialog
QMessageBox
QInputDialog
Using qmake to Simplify Writing Makefiles
Menus and Toolbars with KDE
CD Database Application Using KDE/Qt
MainWindow
AddCdDialog
LogonDialog
main.cpp
Summary
Chapter 18: Standards for Linux
The C Programming Language
A Brief History Lesson
The GNU Compiler Collection
gcc Options
Interfaces and the Linux Standards Base
LSB Standard Libraries
LSB Users and Groups
LSB System Initialization
The Filesystem Hierarchy Standard
Further Reading about Standards
People also search for Beginning Linux programming 4th:
programming beginners guide
linux programs for beginners
linux commands beginner to advanced
linux programming 4th edition
Tags: Neil Matthew, Richard Stones, Beginning, programming