Peter, I have thought about your suggestion and it makes a lot of sense. If I understand correctly this is what you are thinking about:
int I = 0; << another new line do{ ret_val = recv(afd, buf, MAX_BUF, MSG_PEEK); if(0 > ret_val) err(" >>> ERRNO"); else if(0 == ret_val){ << new lines start here if(100 < i++) done = -1; } << new lines end here else if(ret_val > 0){ i = 0; << another new line show_status(afd); ret_val = recv(afd, buf, MAX_BUF, 0); buf[ret_val]='\0'; printf("(%i) \t> %s", ret_val, buf); } usleep(250); if(!done) << another new line done = handle_it(buf); }while(!done); It seems like your suggestion would be very portable. A good suggestion and the most likely route for me at this point. Peter A. Stephens [EMAIL PROTECTED] -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/