while(1){
for(i=0;i<2;i++){
if((msglen[i] = read(s[i+1],&str[i],1)) < 0){
perror("read");
exit(1);
}
}
if((strncmp(&str[0], &str[1], 1)) == 0){//引き分けの場合
printf("%s\n",buf2);
printf("a1");
for(i=1;i<3;i++){
write(s[i],buf2,strlen(buf2));
}
continue;
}else{
exit(0);
}
}

以上のwhile文のところで、思うような動作をしてくれません。
ifの条件をみたした時、こっちとしては普通にもう一度はじめから動作して
欲しいのですが、なぜか全部3回繰り返した後、こっちの動作を受け付けるように
なるんですけど、なぜでしょうか?