If you've already got Linux up and running on your machine and you really want to exploit its capabilities, Beginning Linux Programming is packed full of useful information that will keep you busy for weeks. In spite of its title, Beginning Linux Programming isn't oriented toward novices. It assumes that you're a competent C programmer but are simply new to the specifics of Linux. Authors Neil Matthew and Richard Stones introduce a plethora of fundamental concepts including shell programming, file access, and using curses to write full-screen, character-based programs. But that's just the start. They cover advanced topics such as processes, pipes, semaphores, and sockets - and of course, they address issues common to Internet programming such as using CGI (Common Gateway Interface). The book is a superb resource for anyone who has really wanted to put the pedal to the metal in Linux. This revised second edition has been completely updated, and now covers programming in Perl, an introduction to writing applications for the GNOME desktop, and a new chapter about writing device drivers.
A quick introduction to programming on Linux. Each chapter of the book deals with a certain sub-part of software development on Linux, such as development tools, basic system APIs, networking or GUI development with Tcl/Tk and GTK+.
It never goes into depth, but it is a nice overview and a good introduction that let's you start with any of these topic and then dive deeper with other books.
Pretty good textbook for Linux programming. I'd recommend it, although reading it on Kindle wasn't the best format, especially when there were tables and large chunks of code to look at.