Il problema di quelle funzioni è che non sono rientranti e usano un buffer interno condiviso tra più funzioni di quella famiglia che viene restituito al chiamante, per cui si può incorrere facilmente in problemi se si chiamano queste funzioni una dopo l'altra e ci si aspetta che i dati restituiti da ciascuna di esse restino indipendenti dagli altri. Mi pare comunque che lo standard non fornisca nulla di meglio, per cui, a meno di non usare le estensioni Microsoft (non standard = no buono) non puoi fare molto altro.