I just ewww'd because I personally don't like stuff like that. Especially if it is up to the implementer whether to make it thread safe or not (so it is inherently non-portable if multithreading is involved).
"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
It is my understanding that multithreading itself is not very portable when it comes to C, so in those cases you could opt for strtok_s and strtok_r anyway... It is definitely not the only option, but I don't think it is particularly problematic in this case :) .