Bifalgorithm post · Computer science one · Tokenizing
Why is strtok() not reentrant, and what alternative does C provide?
Why is strtok() not reentrant, and what alternative does C provide? (Computer science one · Tokenizing) — "It should be noted that strtok() is not reentrant. I…
Ideas in this flowchart
- strtok() n’est pas réentrante et son utilisation nécessite des précautions.
- strtok() ne peut traiter qu’une seule chaîne à la fois.
- Dans une application multithread, deux threads ne doivent pas utiliser strtok() simultanément.
- Sinon, les deux threads risquent de traiter les chaînes l’un de l’autre.
- Même dans une application sans threads, il faut rester prudent.
- Il ne faut pas traiter une chaîne avec strtok() dans une fonction, puis appeler une autre fonction qui l’utilise également.
- Cette situation peut interrompre ou perturber le traitement de la première chaîne.
- La fonction réentrante strtok_r() peut être utilisée à la place de strtok().