strtok()
n'est pas MT-safe car il stocke certaines variables intermédiaires globalement et les réutilise à chaque appel (vous n'avez pas à repasser la chaîne à chaque fois que vous appelez strtok()
).Vous pouvez consulter les pages de manuel des méthodes que vous utilisez et il est toujours indiqué à la fin si elles sont MT-safe ou non.
Lorsqu'une méthode n'est pas MT-safe (multi-thread safe ou reentrant), vous devez rechercher la même méthode avec le suffixe _r signifiant reentrant. Dans votre exemple, strtok_r()
comme suggéré dans l'autre réponse.
strtok()
n'est pas réentrant donc il ne doit pas être utilisé à partir d'applications threadées, utilisez strtok_r()
à la place.