GNU/Linux >> Linux の 問題 >  >> Linux

strtok 関数のスレッド セーフ

strtok() いくつかの中間変数をグローバルに保存し、呼び出しのたびにそれらを再利用するため、MT セーフではありません ( strtok() を呼び出すたびに文字列を再度渡す必要がないことを確認してください)。 ).使用しているメソッドのマニュアル ページを参照できます。MT セーフかどうかは常に最後に示されています。

メソッドが MT セーフ (マルチスレッド セーフまたは再入可能) でない場合は、再入可能を意味するサフィックス _r を持つ同じメソッドを探す必要があります。あなたの例では、 strtok_r() 他の回答で提案されているように。


strtok() は再入可能ではないため、スレッド化されたアプリケーションからは使用しないでください。strtok_r() を使用してください


Linux
  1. ユーザーグループルートの機能??

  2. シェル変数の関数?

  3. Linux および gcc 4 での C++ の新しい演算子のスレッド セーフ

  1. errno はスレッドセーフですか?

  2. スレッド ID とスレッド ハンドル

  3. C++11:関数をエイリアスする方法は?

  1. top によって報告された Python スレッドの ID

  2. Linux で fflush() が機能しない

  3. 不明な関数:vundle#begin