Ik loop tegen een probleempje aan en ik weet niet precies hoe ik het op moet lossen; de onderstaande procedure (min of meer uit mpg123 geript) leest informatie uit een open socket. Echter, als er bijv een verkeerd IP adres gegeven is, wacht hij dus tot in de eeuwigheid zonder dat hij met CTRL-C te onderbreken is (de applicatie moet gekilled worden).
Weet iemand hier een oplossing voor?
void readstring(char *string,int maxlen,FILE *f)
{
int pos=0;
//infinite loop
while (1) {
//read a byte from socket
if (read(fileno(f),string+pos,1) == 1) {
pos++;
//end of line?
if (string[pos-1] == '\n') {
string[pos] = 0;
break;
}
}
//nothing to read?
else if (errno != EINTR) {
printf("Error reading from socket or incorrect path.\n");
exit (1);
}
}
}
Weet iemand hier een oplossing voor?
void readstring(char *string,int maxlen,FILE *f)
{
int pos=0;
//infinite loop
while (1) {
//read a byte from socket
if (read(fileno(f),string+pos,1) == 1) {
pos++;
//end of line?
if (string[pos-1] == '\n') {
string[pos] = 0;
break;
}
}
//nothing to read?
else if (errno != EINTR) {
printf("Error reading from socket or incorrect path.\n");
exit (1);
}
}
}