Uploaded April 2021 | Updated September 2026, 2 weeks ago
Patreon ➤ patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ jacobsorber.com
---
How to get and unget input from streams in C (getstring, fgetc, ungetc) // Reading a line from a file or stdin seems super basic, but a lot of students get hung up in the details. This video shows you how to get input from a stream, file, or pipe, using fgetc and ungetc to make your own function like the getstring function in Harvard's CS50 course.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
Patreon ➤ patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ jacobsorber.com
---
How to get and unget input from streams in C (getstring, fgetc, ungetc) // Reading a line from a file or stdin seems super basic, but a lot of students get hung up in the details. This video shows you how to get input from a stream, file, or pipe, using fgetc and ungetc to make your own function like the getstring function in Harvard's CS50 course.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
![What is a Graph Data Structure? When to use it? How to easily visualize it?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
What is a Graph Data Structure? When to use it? How to easily visualize it? // Finally, were talking about graphs. A lot of you have requested it. This is video one of probably 3 or 4 videos on graphs. Here, I give you an overview of graphs, which are kind-of like trees. I talk about directed and undirected graphs, and show you how to use dot (one of the graphiz tools) to easily visualize your graphs.
Related Videos:
Trees: https://youtu.be/UbhlOk7vjVY
More Data Structures: https://www.youtube.com/watch?v=VOpjAHCee7c&list=PL9IEJIKnBJjFiudyP6wSXmykrn67Ykqib
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] What is a Graph Data Structure? When to use it? How to easily visualize it?](https://i.ytimg.com/vi/tq3zPnrQIpU/mqdefault.jpg)
![How to use an ADC (embedded example in C)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
How to use an ADC (in C) // The analog to digital converter, or ADC, is an essential tool that all embedded developers need in their toolkit. This video will help you get started measuring analog voltages and creating custom sensors on two platforms: Arduino and the MSP430. Examples in C.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
+ rep the channel with nerdy merch [https://teespring.com/stores/jacob-sorbers-store]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] How to use an ADC (embedded example in C)](https://i.ytimg.com/vi/u58HG5n49Xk/mqdefault.jpg)

![How to Return Two Things from a C or C++ Function
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
How to Return Two Things from a Function (C/C++) // New C and C++ programmers often wonder how to return multiple values from a single function. This video will give you some options. You can return values through pointer or reference arguments, and you can return structs and classes.
Related videos:
Pointers/Arrays: https://www.youtube.com/watch?v=uT-YLEHwVS4
Pthreads: https://www.youtube.com/watch?v=uA8X5zNOGw8
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] How to Return Two Things from a C or C++ Function](https://i.ytimg.com/vi/uLZVDSZc_ZU/mqdefault.jpg)
![Whats the Right Way to Get File Size in C and C++?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Whats the Right Way to Get File Size in C and C++? // I talked about file sizes and your C/C++ programs back in 2018, using stat and fstat. Today, I want to revisit that and compare it to a common technique using ftell and fseek. Which do you prefer?
Related Videos:
2018 file size video: https://youtu.be/FT2A2HQbTkU
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Whats the Right Way to Get File Size in C and C++?](https://i.ytimg.com/vi/ufMDgJY2I8I/mqdefault.jpg)
![What is a semaphore? How do they work? (Example in C)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
What is a semaphore? How do they work? (Example in C) // Semaphores cause a lot of confusion for students, largely because they are super flexible and a little weird. In this video, I try to provide some insight into how they work, and an example of where you could use semaphores to coordinate different processes.
Shared Memory Videos:
https://youtu.be/WgVSq-sgHOc
https://www.youtube.com/watch?v=rPV6b8BUwxM
Threads and Processes:
https://www.youtube.com/playlist?list=PL9IEJIKnBJjFZxuqyJ9JqVYmuFZHr7CFM
https://www.youtube.com/playlist?list=PL9IEJIKnBJjFNNfpY6fHjVzAwtgRYjhPw
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
+ rep the channel with nerdy merch [https://teespring.com/stores/jacob-sorbers-store]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] What is a semaphore? How do they work? (Example in C)](https://i.ytimg.com/vi/ukM_zzrIeXs/mqdefault.jpg)

![Are Vectors Slower than Arrays?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Are Vectors Slower than Arrays? // A lot of programmers assume that they are significantly slower. In this video, I test it out to see how significant the difference actually is.
Related Videos:
Memory locality video: https://youtu.be/LRLlEzkCL4I
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Are Vectors Slower than Arrays?](https://i.ytimg.com/vi/vMFa6oKSmao/mqdefault.jpg)
![Why Printf is Magically Breaking Your Program.
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Related Videos:
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Why Printf is Magically Breaking Your Program.](https://i.ytimg.com/vi/vusV4lF0Epo/mqdefault.jpg)
![How to Write Function-Like Preprocessor Macros (C example)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
How to Write Function-Like Preprocessor Macros (C example) // In case youve used #define to create program constants, but want to take your C or C++ preprocessor knowledge to the next level, this video takes a look at function-like macros, some of their strengths and weaknesses, and how to address some common macro problems.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] How to Write Function-Like Preprocessor Macros (C example)](https://i.ytimg.com/vi/w3iXBUbq4NY/mqdefault.jpg)
![Youve probably never accessed a file like this before. (Async IO example)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Youve probably never accessed a file like this before. (Async IO example) // Asynchronous input and output is cool, but rarely used. In this video, Ill show you how to split-phase your file reads so you can get other things done in the meantime. This can be a useful alternative to threads, for those of you trying to squeeze every last bit of performance out of your programs.
Related Videos:
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Youve probably never accessed a file like this before. (Async IO example)](https://i.ytimg.com/vi/wJGd7tKF2zY/mqdefault.jpg)