Usando o select Subroutine Exemplo
Esta seção explica usando o exemplo de subroutine select.
O código para a rotina svc_run com a subroutine select é a seguinte:
void
svc_run()
{
fd_set readfds;
int dtbsz = getdtablesize();
for (;;) {
readfds = svc_fds;
switch (select(dtbsz, &readfds, NULL,NULL,NULL)) {
case -1:
if (errno == EINTR)
continue;
perror("select");
return;
case 0:
break;
default:
svc_getreqset(&readfds);
}
}
}
O número máximo de descritores de arquivos abertos que um servidor RPC pode utilizar foi configurado como 32767, a fim de manter a compatabilidade com os aplicativos de servidor RPC construídos em releases anteriores do AIX®. O tipo fd_set passado para a subroutine svc_getreqset precisa ter sido compilado com FD_SETSIZE configurado como 32767 ou maior. Passar em uma variável fd_set menor pode resultar no repassado em buffer sendo superado pela subroutine svc_getreqset.