U205: C Programming on Linux Systems - 3 Days

Who Should Attend:

System programmers, application programmers, computer science students, and other IT professionals who wish to write platform independent ANSI C based programs for Linux / LINUX systems.

Prerequisites:
A general understanding of programming languages is necessary.

Objectives:
This is a hands-on module on the C programming language using the Linux environment. It highlights the writing and debugging of simple ANSI C programs, usage of compilers (CC , GCC) and different libraries, foundations of system and network programming, and exception handling.


Contents:

The Linux Software Development Environment: Linux Software Development Objectives.

The make Utility: Why Use Make? Basic Features of make, Description Files and Substitutions, Recursive Makefiles, SCCS File Names, Dynamic Dependency.

C Programming Tools: ctags, indent, lint, gprof, emacs.

Debugging with gdb: Why use gdb? Printing Stack Trace, Examining Variables, Source File Display and Manipulation, Controlled Environment for Program Testing.

C Standard Libraries:
What is C Standard Library? String Manipulation Functions, Memory Allocation Functions, Math Library Functions, File Manipulation Functions, Miscellaneous Libraries.

Libraries: What is a Library? Building a Library, using make to automate building Libraries.

Introduction to Linux System Calls: What are System Calls? Classes of System Calls, Invoking a System Calls, Exit from a System Call.

File and I/O Management: Linux Files, Obtaining File Status Information, Determining File Accessibility, File Ownerships and Permissions, Renaming and Removing Files, Manipulating File Contents, Directory Manipulation.

Process Control: Processes and the environment, Setting process groups, Setting real and effective uids, Setting process priority, Creating processes, Terminating processes.

Interprocess Communication:
Pipes, Shared Memory, Messages, Semaphores, Signals.