One should learn C if one wants to enter the world of highly resource constrained computing. Once the community matures and the ecosystem matures I'd recommend Rust for that domain, if they are serious about competing at the systems level.
Modern C++ does constrained resources better again than C, giving you more expressive options and compile time computation.
Rust might have a future or it might be dead in 10 years. Its main focus is a very narrow definition of safety (memory safety and partial data trace safety) at low cost.
C++ can do constrained resources better than C, it really depends on the context. In general, C will almost always be usable, though, even in cases where the use of C++ doesn't add anything because of severe constraints.
For Rust, I agree 100%, and that's why I qualified my statement the way I did. It's too immature a language used mainly by people who are vested in it and few others.