My take:
Of the three choices you've displayed, your best initial bet is probably C. Once you know C, have a handle on its quirks and are proficient in it, learning C++ or Objective-C will most likely be fairly trivial. (Your hardest points there will be in the object orientation side of the world.)
At the moment, Objective-C is used most frequently on Macs, but there are some who forget that GNU tools exist for Objective-C, and that is supported in GNUStep as well. (The current Mac OS X is based heavily on the old NextSTEP, of which GNUStep is more or less a clone.) The thing about Objective-C, however, is that it's not widely used outside those two environments -- making it something of a narrow environment. (And with Obj-C, like just about any other modern OO language, you'll spend much more time learning the framework classes than the actual underlying syntax/lexical rules.)
I'm primarily a C# developer. That pays my bills, and does so nicely. C# wasn't on your list, and I suspect I know why: It sounds like you're looking to be closer to the metal, less abstracted away. I get that -- and I think it's the right choice for long-term career growth. I started with umpteen abstractions between my code and the box (first professionally with Java, then VB6, then .NET), and as a result, I now am working hard in my spare time to play "catch up" with the rest of the world -- I'm currently going through the K&R book. Admittedly, I have no professional need to get that close to the metal -- but I do feel a personal need to understand the machine as best I can.
(Plus, ironically, I'm looking at getting back into Cocoa development via Objective-C. I used to putter around in it years ago, and I think I'm better positioned to "get" it now ... I personally feel that foreknowledge of C will make moving into Objective-C much easier, smoother, and make me less likely to introduce disastrous memory-related bugs in my code!)
At the end of the day, I think having the pre-existing knowledge of C (while it wasn't, obviously, necessary for me!) is a Very Good Thing, and probably makes moving to other languages over time (which you will do, unless you do OS, driver or embedded work) easier and smoother. I'm not saying "you can't get by without it," I'm saying that based on the way your question was phrased ... I think it's the right answer for that scenario.