Description
This training will allow you to assimilate the new features introduced by the C11 ISO/IEC 9899:2011 standard. You will discover multithreading management, generic function selection as well as many other functions from the standard library offering safe operating interfaces.
Who is this training for ?
For whom ?
C developers wishing to know the new features defined by the C11 standard.
Prerequisites
Good knowledge of the C language. Practical programming experience with this language is strongly recommended.
Training objectives
Training program
- The advent of C11
- - The different C standards ANSI, C99, C11.
- - New features of C11 and objectives of this ISO standard.
- - Compatibility with old versions.
- - Development tools (compilers, IDE).
- - Practical work Setting up a C11 compilation chain.
- Reminders on C99 progress
- n'as pas encore du programme
- Le multithreading
- - The concept of thread.
- - Lightweight versus heavyweight process.
- - Thread life cycle (execution).
- - Sharing data between threads.
- - Synchronization, appointments, semaphores.
- - Proposals for other languages: Java, C#, C++.
- Use C11 threads
- - Understand the concepts present in the standard and the differences/similarities with Pthreads.
- - Create a thread, make it executable.
- - Define pauses, wait for the end of execution.
- - Use mutexes.
- - Implement a producer-consumer.
- - Practical work Use C11 threads.
- Atomic objects
- - Understand the issues of data sharing between threads and the concept of atomic objects.
- - Define atomic data.
- - Use atomic operations.
- - Non-atomic data management.
- - Practical work Carry out data sharing between threads.
- Operational safety
- - The removal of gets() by gets_s().
- - The fopen_s() function.
- - Other functions: strcat_s(), strcpy_s().
- - Practical work Manipulation of functions.
- Miscellaneous improvements
- - Structure alignment (
). - - - Unicode string management (char16_t...).
- - - Support for anonymous structures and unions.
- - - Generic selection of functions within macros (_Generic) - Handling of complex numbers.
- - - The new mode of fopen().
- - - Static assertions.
- - Practical work
- - Implementation of improvements.