C Programming: Exploring Advanced Concepts and Practical Applications
1h 51mAdvanced2024-09-19
Authors

Dan Gookin
Creator, Teacher, and Technology Writer with 20+ years of experience
Course details
Are you ready to embark on the next phase of your journey with C? Join instructor Dan Gookin in this hands-on course as he demonstrates advanced-level skills and their practical applications with insightful comments and quick tips along the way. Find out what it takes to master your craft and become an expert C programmer, exploring a wide range of topics including basic I/O from the perspective of device IDs, outputting Unicode and wide-character text, multitasking and multithreading programming, linked lists, enumerated constants, data type qualifiers, the errno variable, buffered output, forking, pipes, and more.
Skills covered
Programming FoundationsAdvancedProgramming LanguagesSoftware Development
Concepts
Introduction
- Beyond C
- Configuration and setup
Standard I O
- Understanding file numbers and descriptors
- Using the standard error device
- Buffered and unbuffered output
- Flushing the buffer
- Opening the terminal
- Challenge - Outputting a byte count
The Environment and the Locale
- Reading the environment
- Adding an environment variable
- Setting the locale
- Outputting a monetary format
- Challenge - Pretending you're elsewhere
Unicode and Wide Text
- Understanding Unicode and wide characters
- Outputting wide characters
- Reading wide character input
- Challenge - Creating fancy text output
Processes, Pipes, Forks, and Threads
- Knowing the process ID
- Creating a fork
- Working with pipes
- Running threads
- Communicating between threads
- Challenge - Doing multiple things at once
Linked Lists
- Understanding linked lists
- Building a linked list foundation
- Adding and listing nodes
- Saving a linked list
- Loading a linked list
- Removing a node
- Challenge - Editing a node
Odds and Ends
- Creating enumerated constants
- Exploring data type qualifiers
- Outputting accurate error messages
- Making a temporary file
- Modifying how a program quits
- Reviewing useful constants
- Challenge - Write an informative program
Conclusion
- Next steps