Использование select() для тайм-аута

Я смог установить максимум 20 секунд в качестве параметра тайм-аута в select() API. Какое бы значение я ни дал выше 20, select() возвращается через 20 секунд... Итак, я пытался написать цикл для тайм-аута в 1 минуту, например

    int timeoutcount = 0;
    do
    {
    FD_ZERO(&fd);
    FD_SET(sock,&fd);
    timeout.tv_sec = 20;
    timeout.tv_usec = 0;
    rc = select (sock+1,&fd,null,null,&timeout);
    if(rc ==0)
    timeoutcount += 20;
    }
    while(rc ==0 && timeoutcount <60)

, пожалуйста, помогите мне... я иду правильным путем? Если это так, select возвращает 1 после первого тайм-аута. Помогите мне понять это тоже Примечание: я использую его в задаче C

6
задан Some programmer dude 21 March 2012 в 06:35
поделиться