W funckji select jako pierwszy argument trzeba podac najwiekszy file descriptor, wszystko fajnie, ale co jezeli klient sie odlacza od serwera (ten z max fd) ?
Możesz wytłumaczyc jaśniej?
Jasne ;)
załóżmy, że mam serwer, ktory za pomocą selecta obserwuje polaczenia. W selekcie podaje maksymalny file descriptor przypisany klientowi x.
nagl klient X sie rozlacza, wiec ja wykrywszy to wywolyje close(x), wracam w petli do selecta i tutaj pytanie.
Bo w wywolaniu selecta jako max filedescriptor jest fd x'a. Czy to grozne ? jak ewentualnie to obejsc sprytnie, mial ktos podobny problem ??
Jezeli cos nie jasne, to dopowiem
Mówisz o pierwszym argumencie funkcji select? Pod jaki system programujesz? Jeżeli pod windowsa, to możesz wpisać w jego miejsce zero, bo jest ignorowany, a jeżeli pod linuxa, to z tego co pamiętam, nie musisz dbać o to, aby ten argument faktycznie oznaczał wartość największego deskryptora pliku + 1. Pilnuj jedynie, aby wartość ta nie była niższa niż największy deskryptor + 1. Nie wiem czy jest sens "czyszczenia" tej wartość, tzn. znalezienie największego deskryptora spośród wszystkich używanych.
Linux, o taka odpowiedz mi chodzilo ;)