strtok()
いくつかの中間変数をグローバルに保存し、呼び出しのたびにそれらを再利用するため、MT セーフではありません ( strtok()
を呼び出すたびに文字列を再度渡す必要がないことを確認してください)。 ).使用しているメソッドのマニュアル ページを参照できます。MT セーフかどうかは常に最後に示されています。
メソッドが MT セーフ (マルチスレッド セーフまたは再入可能) でない場合は、再入可能を意味するサフィックス _r を持つ同じメソッドを探す必要があります。あなたの例では、 strtok_r()
他の回答で提案されているように。
strtok()
は再入可能ではないため、スレッド化されたアプリケーションからは使用しないでください。strtok_r()
を使用してください