@tptacek and others on this thread, what books do you suggest to learn modern C programing?
I am an experienced programmer, but all of my experience has been with JVM languages. I would like to be able to read and debug C/C++ programs - so which books provide a good start on idioms, libraries and tools?
_C Interfaces and Implementations_ by David Hanson.
I'm using it as the textbook for a weekend C class I'm about to run for a bunch of Ruby/Java programmers, because CII basically gives you back all the data structures you have in Ruby that C "takes away" from you.
It'll also teach you a style of C development (ADT-centric, modular, heavy on function pointers) that holds up pretty well and is relatively modern.
It's not exactly a book suggestion, but hacking on the Linux kernel can give you experience with a sizable code base in reasonably good C. If you are or want to be a Unix developer at all, become good friends with the man command and make sure you have the complete set of manual pages installed (and, ideally, the POSIX original man pages as well to compare your system to the spec).