/*
* Check a descriptor to see if out of band data exists on it.
*/
int stilloob(int s) /* socket number */
{
static struct timeval timeout = { 0, 0 };
fd_set excepts;
int value;
do {
FD_ZERO(&excepts);
FD_SET(s, &excepts);
value = select(s+1, (fd_set *)0, (fd_set *)0, &excepts, &timeout);
} while ((value == -1) && (errno == EINTR));
if (value < 0) {
fatalperror(pty, "select");
}
if (FD_ISSET(s, &excepts)) {
return 1;
} else {
return 0;
}
}
上面代码是哈佛大学的telnet里面的一个函数,原来一直都没见过select的第三个set(except set)真正的使用过。今天看到,哈哈,开眼界了。