strtok() není MT-safe, protože ukládá některé přechodné proměnné globálně a znovu je používá při každém volání (viz, nemusíte znovu předávat řetězec pokaždé, když voláte strtok() ).Můžete se podívat na manuálové stránky metod, které používáte a na konci je vždy uvedeno, zda je MT-safe nebo ne.
 Pokud metoda není MT-safe (multi-thread safe nebo reentrant), měli byste hledat stejnou metodu s příponou _r, která znamená reentrand. Ve vašem příkladu strtok_r() jak je navrženo v druhé odpovědi.
 strtok() není reentrant, takže by neměl být používán z aplikací s vlákny, použijte strtok_r() místo toho.
            Propojení se starou verzí knihovny libc pro zajištění většího pokrytí aplikací         
            Může spustitelný soubor objevit svou vlastní cestu? (Linux)