I would like to spend most of my time in these notes to teach how to C program in a POSIX environment on such platforms as SunOS, Linux, SCO, etc. But, one should have some basic requirements to navigate through a generic UNIX operating system before learning to write programs on them. There seems to be literally dozens of sites on the Internet that have basic backgrounds for using a UNIX system. The following are some links to start you off.
| Web Site | Description |
http://www.isu.edu/departments/comcom/unix/workshop/unixindex.html |
Good Basic introduction to using a UNIX System |
| http://www.cyberspace.org/ http://sdf.lonestar.org/ http://www.nyx.net/ |
Get a free UNIX Account at these sites |
| http://www.bsdi.com/bsdi-man/ http://www.csee.usf.edu/cgi-bin/man-cgi http://www.gsp.com/support/man/ |
UNIX Man pages online |
| http://www.geek-girl.com/unix.html | A great site for many UNIX related links. |
| http://www.linux.org | LINUX site |
| http://www.demolinux.org/ | Live Linux System on a CD |
The following are text books that I think are very useful for learning to program on an UNIX operating system.
| B W Kernighan, and R Pike. "The UNIX Programming Environment". Prentice Hall, 1984. |
| W R Stevens. "UNIX Networking Programming". Prentice-Hall, 1990. |
| W R Stevens. "Advanced Programming in the Unix Environment". Addison-Wesley, 1992. |
| M J Rochkind. "Advanced UNIX Programming". Prentice-Hall, 1985. |
We will rely on the man(manual) pages heavily when learning to program. The man pages are broken into eight sections. The following is a list of the eight sections. For programming, we will need to use sections 2 (System Calls) and sections 3( C Library Functions)
| Section | Description |
| 1 | User Commands |
| 2 | System Calls |
| 3 | C Library Functions |
| 4 | Devices and Network Interfaces |
| 5 | File Formats |
| 6 | Games and Demos |
| 7 | Environments, Tables, and TROFF Macros |
| 8 | Maintenance Commands |