while(bytes_received < bytes_required)
{
read(ttyfd,&rxchar,1);
if (rxchar != -1)
{
recv[bytes_received] = rxchar;
printf("%s%d\n","char rx ",rxchar);
bytes_received++;
printf("%s%d\n","bytes received ",bytes_received);
}
time(&finish);
diff_time = difftime(finish,start);
if(diff_time > timeout)
{
printf("timeout \n");
error_flag = TRUE;
}
} /* end while */
як намене оцей фрагмент намертво завісить програму у випадку коли не буде відповіді. У мене переривання комунікацій - нормальна ситуація, нічого страшного тут немає. навіть більше, та документація, яка реграментує порядок обміну із моїм пристроєм говоротить що один збій в зв'язку на 8 годин неперевної роботи - це нормально. Це по-перше, а по-друге, ну це вже особливості мого протоколу обміну, у мене -1 нормальні дані. Це що до першого if, краще б було написати так
if(read(ttyfd,&rxchar,1))
і далі по тексту.
так що звісно дякую за лінк але воно мені слабо допоможе....