Advanced C Programming for Unix/Linux
This course provides an accelerated survey of C programming, providing prerequisite skills required for the exploration and practice with the SUS/POSIX (Portable Operating System) system interfaces for programming on UNIX/Linux systems. Techniques for the application of the UNIX system interfaces are explored. Experience with C illustrates the design decisions associated with pointers and low-level bit manipulations avoided by other modern programming languages; aids in the use of many C functions employed by other programming languages; and demonstrates performance and control capabilities required by embedded, hard-real-time applications for data acquisition, motor control, and robotics. Experience with UNIX transfers directly to other "POSIX-compliant" operating systems such as Windows and OS/390.
At the end of the course, students will be able to:
Write moderately complex programs in C using basic and advanced data structures.
Create modular C projects including makefiles, and apply conventions for source, header, and include files.
Assess the background and history of some fundamental UNIX system interfaces, and how the development of UNIX influenced POSIX, both positively and negatively.
Apply UNIX system interfaces for file I/O, terminal I/O, pipes, FIFO's, sockets, and process control.
Find the resources to apply unfamiliar system interfaces on their own.