Alan Dix's short courses and tutorials

UNIX Systems Programming I & II

(first delivered while at School of Computing, Huddersfield University)

Tutor: Alan Dix
Audience: C programmers wanting to unleash the power of UNIX!
Style: Combination of short lectures and hands-on sessions.

Taught as two independent units: UNIX Systems Programming I and UNIX Systems Programming II (not very imaginative I know!). These can be taken together as a single 2 day course or independently. The second unit assumes an understanding of basic UNIX file I/O.

You can download the complete notes (PDF) for this course

N.B. These units do not cover UNIX network programming or X-based window applications. These are catered for in my other short courses. especially UNIX Power Tools, Introduction to X Motif and Unix Network Programming with TCP/IP.


UNIX Systems Programming I

Content: File I/O, filters and file manipulation. Command line arguments and environment variables. Terminal handling and text based screen applications. Interrupt handling. Finding the time. Mixing C and scripts.
Objective: The attendee should leave the course able to produce programs similar to standard UNIX utilities (mv, rm etc.) using raw UNIX system calls and do basic screen manipulation (for text based editors, menu driven systems, forms etc.).
Prerequisites: Reasonable standard of C programming (should understand pointers, structures, functions).


UNIX Systems Programming II

Content: Advanced file I/O including special devices. Process handling (fork, exec etc.). Inter-process communication via pipes, pseudo terminals. and sockets. Blocking & non-blocking I/O, handling multiple I/O streams using select. Other miscellaneous system calls including timers. Locking and caching issues.
Objective: The attendee should leave the course able to produce programs which generate, link and control multiple processes, the pre-requisite for more advanced client­server and network-based applications.
Prerequisites: Reasonable standard of C programming plus an understanding of basic UNIX file I/O (as above, but excluding TTY handling).


http://www.hiraeth.com/alan/tutorials/courses/unixprog.html Alan Dix 5/8/98