Linux C programming

This course teaches Linux users how to do C programming, specifically on the Linux operating system. Linux C programming allows the highest performing applications and is necessary for low level programming, especially when dealing with devices and low level internals. We look and implement best practices and build on your previous experience.


No public sessions are currently scheduled. We will be pleased to set up an on-site course or to schedule an extra public session (in case of a sufficient number of candidates). Interested? Please let us know.

Intended for

Future C programmers in a Linux environment.


Experience with a Linux system as a user, for example after following the Linux/UNIX fundamentals course. Previous programming experience in other environments is recommended.

Main topics

  • The build process with gcc, make, gdb

Refresh of C pointers and function calls

Version control with git

File operations with gpio

  • Defensive coding and libraries with libusb


Threads, synchronisation and critical sections

  • Processes vs Threads

Interprocess Communication

Shared Memory and Semaphores

  • Mapped Memory



  • Devices

/proc and /sys interaction

System calls

mlock, nanosleep, readlink, sendfile, setitimer and sysinfo

Training method

Classical lecture with a lot of exercises. Participants receive the book 'Linux Programming' by Jasper Nuyens. The solutions to the exercises are provided for those with less background.


5 days.

Course leader

Linux Belgium.