There are many electronic references on the Web, and I encourage you to
explore. I have tried to pare down references to a managable size. Please
send useful links to kaharris
Reflections on Trusting Trust Ken Thompson's speech on reciept of the
Turing Award. The speech is on the cutest program he ever wrote. (No,
it is not the original Unix OS.)
Choosing a text editor may be the most important decision you make. I use
vi which is a text-based editor (I am old-fashioned.) Most people use
emacs, which is a Gui text editor--windows, mouse control, color graphics.
There is a Gui version of vi, vim, which looks very good as well. All are
avaiavailable on the Linux cluster.
emacs Tutorials
There are many, many tutorials on the web. Choose the one
most readable to you. emacs is a monster program with something for
everyone.
Essential C (.pdf) by the Stanford CS Education Library. This is an
excellent place to start refreshing your C programming skills.
Pointers and Memory (.pdf) by the Stanford CS Education Library.
When you are ready to muscle-up on the most common source of
programming bugs. This is an excellent discussion of using pointers.
Programming in C Online Courseware by David Marshall. This is a
very good reference that will be a useful resource throughout the
the quarter with its discussion of UNIX system calls.
Links on programming style and philosophy.
You should choose one, read it carefully, and program yourself to
follow it. The essence of style is clarity and consistency. Choose the
guide that you are comfortable with and stick to it.
ACM Tutorials Tutorials on using EM>gcc,
make,gdb and cvs. The section on
make is an excellent discussion of using this utility. (The
other tutorials are really more notes.)
gcc
Gnu's C compiler. There are several
versions in use on machines. To find out which version your machine
is running type gcc -v on the command line. For our
purposes the version you use will not effect performance.
Compiling "C" Programs with gcc Bare bones introduction to
compiling with gcc (Gnu's version of the C compiler called
cc in the text) from the Little Unix Programmers Group (LUPG).
You will probably not need much more for this class.
The Linux Kernel by David A Rusling. Highly recommended guide to
the Linux Kernel for those who want to look beneath the hood.
The Open Group Base Specifications Issue 6 (POSIX Standards) See
the section on System Interfaces for the specifications and examples of
correct usage for system call library. This is a very readable
document and well worth your use as a reference.
LUPG Tutorials Very good collection of tutorials on programming
for Unix.
Programming in C Online Courseware by David Marshall. This is a
very good reference that will be a useful resource throughout the
the quarter with its discussion of UNIX system calls.