One good reason to learn C, even if your programming needs are
satisfied by a higher-level language, is that it can help you learn to
think at hardware-architecture level. The best reference and tutorial
on C for people who are already programmers is still The C
Programming Language [Kernighan-Ritchie].
Porting C code between Unix variants is almost always possible
and usually easy, but specific areas of variation (like
signals and process control) can be tricky to get right. We
highlight some of these issues in Chapter17. Differing C bindings on other
operating systems can of course cause C portability problems, although
Windows NT at least theoretically supports an ANSI/POSIX-compliant C
API.