Introduction to systems programming in C on UNIX. Students will be introduced to tools for compilation, dynamic linking, debugging, editing, automatic rebuilding, and version control. Some aspects of the UNIX system call interface will be studied, including: process creation, signals, terminal I/O, file I/O, inter-process communication, threads, network protocol stacks, programming with sockets, and introduction to RPC. Style issues to be covered include: naming, layout, commenting, portability, design for robustness and debugability, and language pitfalls.
Course prereqs: CS 182 or CS 385
Textbook(s): W. Richard Stevens, Stephen A. Rago , Advanced Programming in the UNIX Environment , 3rd ed., Addison-Wesley Professional, 2013
Other Readings: Brian W. Kernighan and Dennis M. Ritchie , The C Programming Language , Prentice Hall, 1988. ISBN: 0-13-110362-8
Your final grade will be determined by your performance in the following: