DCE, POSIX, UI) When should I use thread-safe “_r” library calls?
If your system provides threads, it will probably provide a set of thread-safe variants of standard C library routines. A small number of these are mandated by the POSIX standard, and many Unix vendors provide their own useful supersets, including functions such as gethostbyname_r(). Unfortunately, the supersets that different vendors support do not necessarily overlap, so you can only safely use the standard POSIX-mandated functions. The thread-safe routines are conceptually “cleaner” than their stateful counterparts, though, so it is good practice to use them wherever and whenever you can.