I started programming about 20 years ago with the first edition of the book C for Dummies. It was a great introduction to code and I am now a professional software developer. However, these days I work with higher level languages most of the time (e.g. Ruby, PHP, Java, and lots of web stuff). I would like to revisit C but I know that a lot has changed, and two new standards (C99, C11) have come out since then. I would like to learn about the new features but I am mostly interested in writing portable code that I can write higher level language bindings for in some other language.
Are there any good books or websites that talk about:
- What standard to target
- The differences between the standards
- Caveats in the standard libraries (like I understand these days one is supposed to look for buffer overflows when dealing with strings, etc.)
- UTF-8 support
- Commonly used libraries, like STL or Boost for C++
And anything else I might be missing.