(*) Caveat: It must be a small challenge involving a relatively simple task. I don't have a lot of time to waste on this.
Nice caveat. Let me rephrase that another way for you: it is difficult to implement complicated functionality in C. Indeed, this is one reason to use higher level languages. You can achieve more in less time.
You have a massage (from the Swedish prime minister).