>temp_buf[TEMP_BUF_SIZE], temp_buf2[TEMP_BUF_SIZE]は'\0'で初期化されてます。
で
>文字列がtem_bufに格納され
なのに
>char *p = strstr(temp_buf,com);
>if( *p != NULL ){
だからじゃないかな?
文字列を入れたtem_bufでなく'\0'で初期化したtemp_bufを見ちゃってる