C Programming: Exploring Advanced Concepts and Practical Applications

C Programming: Exploring Advanced Concepts and Practical Applications

1h 51mAdvanced2024-09-19

Authors

Dan Gookin

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
80,000 Toman