Skip to contentSkip to conversation

select(2)

DISCUSSION Brad Bonkoski 2 participants 2 messages Aug 3, 2001 – Aug 4, 2001

lore
Share & tools
lore
#0 lore raw

----- Original Message -----
From: "Brad Bonkoski" <[email protected]>
To: <[email protected]>
Sent: Friday, August 03, 2001 10:15 AM
Subject: select(2)

Quoted 14 lines

Hello,

this code:
fd_set set;
struct timeval timeout;
int len_inet;
int n;
FD_ZERO(&set);
timeout.tv_sec = 1L;
FD_SET(sc_sock,&set);
n = select(sc_sock+1, &set, NULL, NULL, &timeout); if (n == -1)

Quoted 5 lines

perror("select()\n");
exit(1);
}

Works just fine on one machine, i.e. select() does not return a '-1' which

lets it run through the rest of the code. However, on other machines, it does not work fine, -1 is always returned by select() with error of: Invalid arguement

Quoted 2 lines

Any ideas on where I could look to fix this problem? Something in the

syntax of the posted code, or should I be looking at the creation of the socket?

Quoted 7 lines

TIA.
Brad

#1 lore raw
Quoted 9 lines · Brad Bonkoski
Quoted 9 lines

Hello,

this code:
fd_set set;
struct timeval timeout;
int len_inet;
int n;
FD_ZERO(&set);
timeout.tv_sec = 1L;

I would venture a guess that as you don't EXPLICITELY
initialize the timeout.tv_usec value to be
within 0 to 999999 it may get some system dependent
sometimes random, sometimes fixed value (the joys of these stack-allocated "automatic" variables..)

For short: Smells of UNINITIALIZED PARAMETER DATA.

Quoted 32 lines
Quoted 10 lines

FD_SET(sc_sock,&set);
n = select(sc_sock+1, &set, NULL, NULL, &timeout); if (n == -1)

perror("select()\n");
exit(1);
}

Works just fine on one machine, i.e. select() does not return a '-1' which

lets it run through the rest of the code. However, on other machines, it does not work fine, -1 is always returned by select() with error of: Invalid arguement

Quoted 2 lines

Any ideas on where I could look to fix this problem? Something in the

syntax of the posted code, or should I be looking at the creation of the socket?

Quoted 7 lines

TIA.
Brad

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/