私はこの非常に奇妙な振る舞いをしています:
以下のコードでは: MyLogger への呼び出しにコメントを付けると、sTempNr がトークン化され、4 つのトークンが表示されるというすべてが正常に機能します。しかし、ログ記録のために MyLogger への呼び出しのコメントを外すと、反復は 1 回だけ行われ、以下のような同様のコードを持つ他のテスト クラスでは、冗長な情報が MyLogger に送信されて 4 回以上ループが発生します。
そのため、Purify ツールを使用して、MyLogger にメモリの問題があるかどうかを確認しました。見つかりませんでした。MyLogger は vaargs を使用して引数を抽出し、vfprintf を呼び出して印刷します。
このコードをさらにデバッグする方法がわかりません。任意のガイダンスをいただければ幸いです!.
char sTempNr[41] = "1129Z13589.2.9.10";
char *sTempStr;
sTempStr = NULL;
sTempStr = strtok(sTempNr,".");
while (sTempStr)
{
printf("in in TempStr[%s]\n",sTempStr);
//MyLogger("write","","Temp String[%s]",sTempStr);
sTempStr = strtok(NULL,".");
}