Advanced C

C on Linux is the hard-core programmer's dream! To assist the programmer, there are many freely available tools. Once mastered, these tools will help the programmer produce the best results with minimal effort! This course teaches a variety of open source tools on Linux that help C developers produce best results with minimal effort!

Course Benefits

Upon completion of this course, participants will be able to:
  • Improve the readability, testability, portability, reusability and maintainability of existing code
  • Completely understand the build process using the gcc tool chain
  • Use various options of gcc to control the pre-processed code, compiled code, assembled code and executable code
  • Use various gcc options to control optimization, features, includes, libraries and warnings
  • Work with external libraries as well as create libraries that can be statically linked or dynamically linked
  • Use makefiles to automate as well as simplify the build process
  • Use gdb to debug crashing applications or to analyze the working of programs
  • Understand the layout of executable files - both on disk as well as in memory
  • Understand the environment for the C program and the runtime transfer of control between the kernel space and the user space
  • Detect memory leaks and fix them using Valgrind
  • Profile applications and find out where time is consumed
  • Use powerful custom editing in Vim to enable faster entry of code
  • Fix issues and improve readability using CLint
  • Generate documentation from the program using Doxygen

Target Audience

  • C professionals who want to want to write more effective and efficient code, and use professional tools to monitor, automate and repair


  • Working knowledge of Linux and C

Course Duration

4 days